知识大全 数据结构考研分类复习真题 第二章 答案[56]

Posted 结点

篇首语:韬略终须建新国,奋发还得读良书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[56]相关的知识,希望对你有一定的参考价值。

   .[题目分析] 题目要求按递增次序输出单链表中各结点的数据元素 并释放结点所占存储空间 应对链表进行遍历 在每趟遍历中查找出整个链表的最小值元素 输出并释放结点所占空间;再查次最小值元素 输出并释放空间 如此下去 直至链表为空 最后释放头结点所占存储空间 当然 删除结点一定要记住该结点的前驱结点的指针

  void  MiniDelete(LinkedList  head)∥head是带头结点的单链表的头指针 本算法按递增顺序输出单链表中各结点的数据元素 并释放结点所占的存储空间   while(head >next!=null)∥循环到仅剩头结点   pre=head;∥pre为元素最小值结点的前驱结点的指针   p=pre >next;∥p为工作指针  while(p >next!=null)  if(p >next >data<pre >next >data)pre=p;∥记住当前最小值结点的前驱  p=p >next;    printf(pre >next >data);∥输出元素最小值结点的数据   u=pre >next;pre >next=u >next; free(u);∥删除元素值最小的结点 释放结点空间  ∥ while(head >next!=null)  free(head);∥释放头结点

  [算法讨论] 算法中使用的指针变量只有pre p和u三个 请读者细心体会 要注意没特别记最小值结点 而是记其前驱

cha138/Article/program/sjjg/201311/23316

相关参考