软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2010年下半年程序员考试下午真题试题(案例分析)
考试中心《2010年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2010年下半年
试题题型【分析简答题】
试题内容

阅读以下说明和C函数,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。
【说明】
已知单链表L含有头结点,且结点中的元素值以递增的方式排列。下面的函数DeleteList在L中查找所有值大于minK且小于maxK的元素,若找到,则逐个删除,同时释放被删结点的空间。若链表中不存在满足条件的元素,则返回-1,否则返回0。
例如,某单链表如图4-1所示。若令minK为20、maxK为50,则删除后的链表如图4-2所示。

图4-1

图4-2
链表结点类型定义如下:
typedef struct Node{
int data;
struct Node *next;
}Node, *LinkList;
【C函数】
int DeleteList (LinkList L, int minK, int maxK)
{  /*在含头结点的单链表L中删除大于minK且小于maxK的元素*/
     (1)   *q = L, *p = L->next;  /*p指向第一个元素节点*/
    int delTag = 0;
     while ( p )
       if  ( p->data <= minK )
       { q = p;  p =   (2)  ;  }
       else
     if ( p->data < maxK )  {  /*找到删除满足条件的节点*/
  q->next =   (3)  ;   free(p);  
p =   (4)  ;  delTag = 1;
    } 
    else  break;
   if (   (5)   )  return -1;
    return 0;
}


相关试题

推荐文章
合作网站内容