知识大全 数据结构考研分类复习真题 第二章 答案[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相关参考
.()la () &
.[题目分析]本题所用数据结构是静态双向链表其结构定义为 typedef struct node char data[maxsize];∥用户姓名maxsize是
()voidCreatOut()∥建立有n个单词的单向链表重复单词只在链表中保留一个最后输出频度最高的k个单词 LinkedListla; la=(LinkedList)malloc(size
.[题目分析]在递增有序的线性表中删除数值相同的元素要知道被删除元素结点的前驱结点 LinkedListDelSame(LinkedListla) ∥la是递增有序的单链表本算法去掉数值相同的
()要求编程实现带头结点的单链表的逆置首先建立一单链表然后逆置 typedef struct node int data;∥假定结点数据域为整型 struct&
()本题与上面两题类似要求结果指针为lc其核心语句段如下 pa=la>next;pb=hb>next; lc=(LinkedList)malloc(sizeof(LNode));
.设 q:=p^llink; 则 q^rlink:=p^rlink; p^rlink^llink:=q; p^llink:=q^llink; q^lli
.[题目分析] 知道双向循环链表中的一个结点与前驱交换涉及到四个结点(p结点前驱结点前驱的前驱结点后继结点)六条链 void Exchange(LinkedListp)∥p是
.[题目分析]顺序存储结构的线性表的逆置只需一个变量辅助空间算法核心是选择循环控制变量的初值和终值 void SeqInvert(ElemTypea[]intn)∥a是具有n个元素用一
.[题目分析]首先在双向链表中查找数据值为x的结点查到后将结点从链表上摘下然后再顺结点的前驱链查找该结点的位置 DLinkList locate(DLinkListLElemTypex