知识大全 数据结构考研分类复习真题 第二章 答案[55]
Posted 结点
篇首语:一直盯着手心看,手心会发热。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[55]相关的知识,希望对你有一定的参考价值。
.[题目分析]首先在双向链表中查找数据值为x的结点 查到后 将结点从链表上摘下 然后再顺结点的前驱链查找该结点的位置
DLinkList locate(DLinkList L ElemType x)∥L是带头结点的按访问频度递减的双向链表 本算法先查找数据x 查找成功时结点的访问频度域增 最后将该结点按频度递减插入链表中适当位置 DLinkList p=L >next q;∥p为L表的工作指针 q为p的前驱 用于查找插入位置 while (p && p >data !=x) p=p >next;∥查找值为x的结点 if (!p) printf( 不存在值为x的结点\\n ); exit( ); else p >freq++;∥令元素值为x的结点的freq域加 p >next >pred=p >pred;∥将p结点从链表上摘下 p >pred >next=p >next; q=p >pred;∥以下查找p结点的插入位置 while (q !=L && q >freq<p >freq) q=q >pred; p >next=q >next; q >next >pred=p;∥将p结点插入 p >pred=q; q >next=p; return(p);∥返回值为x的结点的指针 ∥算法结束
cha138/Article/program/sjjg/201311/23315相关参考
.()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个元素用一
. .从任一结点出发都可访问到链表中每一个元素 .u=p>next;p>next=u>next;free(u);