列表

详情


()(共15分)
  阅读以下说明和C语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
  已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数compress(NODE *head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。
  处理过程中,当元素重复出现时,保留元素第一次出现所在的结点。
  图4-1(a)、(b)是经函数compress()处理前后的链表结构示例图。
 


  链表的结点类型定义如下:
   typedef struct Node {
       int data;
   struct Node *next;
   }NODE;
 

【C语言函数】
  void compress(NODE *head)
  {  NODE *ptr,*q;
      ptr =   (1)  ;   /* 取得第一个元素结点的指针 */
      while (  (2)   && ptr -> next)  {
        q = ptr -> next;
    while(q &&   (3)  ) {  /* 处理重复元素 */
        (4)   = q -> next;
       free(q);
       q = ptr -> next;
        }
        (5)   = ptr -> next;
    }/* end of while */
  }/* end of compress */

参考答案:

详细解析:

上一题