数据结构练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习题
21.在双向链表中,前趋指针和后继指针分别为prior和next。若要指针p往后移动两个结点,即指向当前结点后继的后继,则需执行语句。若要指针p向前移动一个结点,即指向当前结点的前趋,则需执行语句。22.在有n个叶子结点的哈夫曼树中,其结点总数为。
23.数据的逻辑结构被分为集合结构、线性结构、和。
24.第一个顶点和最后一个顶点相同的路径称为。除第一个顶点和最后一个顶点相同外,其余顶点不重复的回路,称为。25.堆排序属于(稳定、不稳定)排序。快速排序属于(稳定、不稳定)排序。
26.从一个栈顶指针为top的非空链式栈中删除结点,并不需要返回栈顶的值和回收结点时应执行的操作。
27.在有n个顶点的无向图中,每个顶点的度最大可达。
28.对于下面的二叉树,按后根遍历所得到的结点序列为。
29.带头结点的双链表H中两个指针域为prior和next,则双链表H为空的条件可以表示为。
30.在二叉链表中判断某指针p所指结点为叶子结点的条件是。
一、应用题(每小题6分,共30分)
31.写出下图所示的AOV网的所有拓扑有序序列。
32. 试将右图所示的一棵二叉树还原成森林。
33.以数据集{2,5,7,9,13}为权值构造一棵哈夫曼(Huffman )树,并计算其带权
路径长度。
34.试写出一组键值(83,40,63,13,84,35,96,57,39,79,61,15)应用二路归
并排序算法从小到大排序后各趟的结果。
35.已知图中二叉排序树的各结点的值依次为32~40,请标出各结点的值。
图 二叉排序树
36.下列算法的功能是求出指定结点在给定的二叉排序树中所在的层次。请完善该算法。 Void level (BSTree root ,p )
{ int level=0; A C B D E F
G H
if(!root)
(1);
else{
level++;
while(root->key!=p->key)
{
if(root->key>p->key)
(2);
else
(3);
level++;
}
(4);
}
}
(1)
(2)
(3)
(4)
37试将折半查找的算法改写成递归算法。
38. 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不
设头指针),试编写相应的队列入队列和出队列的算法。