Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4566173
  • 博文数量: 385
  • 博客积分: 21208
  • 博客等级: 上将
  • 技术积分: 4393
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-30 13:40
文章分类

全部博文(385)

文章存档

2015年(1)

2014年(3)

2012年(16)

2011年(42)

2010年(1)

2009年(2)

2008年(34)

2007年(188)

2006年(110)

分类: C/C++

2006-11-10 14:52:50

1: 单链表删除节点
typedef  struct  Node
{
    int  data;
    struct Node *next;

}Node;

int  DeleteNode(Node*p,  Node*head)
{
    Node *pre=head;
    Node *q=head;
    
    while( q&& q->data!=p->data )
    {
        pre=q;
        q=q->next;
    }
   
    if (!q)  return  -1;
    //未找到待删除的节点
    //at this time, q=p;
    if (p==head)  head=head->next;
    else 
    {
       
        pre->next=q->next;
       
    }
    free(p);
   
    return  0;
   

}


2:有三块草地,分别是5,6,8公顷,草皮厚度一样,
生长速度一样,第一快草地11头牛吃了10天吃完,
第二快草地12头牛吃了14天吃完,问第三块草地19头牛能吃几天。



y:  一头牛一天吃多少公顷草
x:  草地每天增长了多少公顷


5+10(x)=110y
6+14(x)=14*12y
发现解出来y是负数, 肯定不对。
Re: 第8题(仅供参考)
设5公顷原有草T,每天长S,一头牛一天吃W,19头牛可以吃x天,则
10*11*W=T+10*S.....(1)
12*14*W=6/5*T+6/5*14*S.....(2)
19*x*W=8/5*T+8/5*x*S.....(3)
由(1)和(2)可得S=7.5W    T=35W
代人(3)可得
x=8天

3:一个单链表,尾指针指向前面的某个节点,如何有效率的找出尾指针的位置? 

node * GetTail(node *head,node *&tail)
{
    node *fast,*slow;
    fast=slow=head;
   
   
   
    while(1)
    {
        if (  fast ==slow)
        {
            tail =fast;
            return  tail;
       
        }
        else
        {
            slow =slow->next;
            fast=fast->next->next;
       
        }
   
    }


}


4: 关于内存对齐的问题以及sizeof()的输出
答:编译器自动对齐的原因:为了提高程序的性能,
数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,
为了访问未对齐的内存,处理器需要作两次内存访问;然而,
对齐的内存访问仅需要一次访问。

5一般数据库若出现日志满了,会出现什么情况,是否还能使用?
答:只能执行查询等读操作,不能执行更改,备份等写操作,
原因是任何写操作都要记录日志。也就是说基本上处于不能使用的状态。

amortize

v.
分期清偿
阅读(2561) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~