数据结构算法分析.docx

上传人:小飞机 文档编号:5306660 上传时间:2023-06-24 格式:DOCX 页数:37 大小:162.28KB
返回 下载 相关 举报
数据结构算法分析.docx_第1页
第1页 / 共37页
数据结构算法分析.docx_第2页
第2页 / 共37页
数据结构算法分析.docx_第3页
第3页 / 共37页
数据结构算法分析.docx_第4页
第4页 / 共37页
数据结构算法分析.docx_第5页
第5页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据结构算法分析.docx》由会员分享,可在线阅读,更多相关《数据结构算法分析.docx(37页珍藏版)》请在三一办公上搜索。

1、试题一-、单项选择题(每小题2分,共20分)(1)以下数据结构中哪一个是线性结构?()A)有向图B)WUC)线索二叉树D)B树(2)在一个单链表皿中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则 执行如下()语句序列。A)p=q; p-next=q;B)p-next=q; q-next=p;C)p-next=q-next; p=q; D)q-next=p-next; p-next=q;(3)()不是队列的基本运算。A)在队列第1个元素之后插入一个元素B)从队头删除一个元素C)判断一个队列是否为空D)读取队头元素的值(4)字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符

2、串至多可以组成()个不同的字符串。A)14B)5C)6D)8(5)由权值分别为3,8,6,的叶子生成一棵哈夫曼树,它的带权路径长度为()。A)11B)35C)19D)53以下6-8题基于下图:(6)该二叉树结点的前序遍历的序列为()。A)E、G、F、A、C、D、B B)E、A、G、C、F、B、DC)E、A、C、B、D、G、F D)E、G、A、C、D、F、B(7)该二叉树结点的中序遍历的序列为()。A)A、B、C、D、E、G、FB)E、A、G、C、F、B、DC)E、A、C、B、D、G、FD)B、D、C、A、F、G、E(8)该二叉树的按层遍历的序列为()。A)E、G、F、A、C、D、BB)E、A、

3、C、B、D、G、FC)E、A、G、C、F、B、DD)E、G、A、C、D、F、B(9)下面关于图的存储的叙述中正确的是()。A)用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B)用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C)用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D)用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关(10)设有关键码序列(q,g,m,z,a,n,p,x下面哪一个序列是从上述序列出发建堆的结果 ()A)a,g,h,m,n,p,q,x,z B)a,g,m,h,q,n,p,x,zC)g,m,q,

4、a,n,p,x,h,z)h,g,m,p,a,n,q,x,z二、(本题8分)对于序列8,18,6,16,29,,8试写出堆顶元素最小的初始堆。三、(本题8分)一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来。试求出空格处 的内容,并画出该二叉树。先序序列:B F ICEH G中序序列:D KFIA EJC后序序列:K FBHJ G A四、(每小题2分,共8分)设有序列:w=23,24,27,80,28试给出:(1)二叉排序树;(2)哈夫曼树;(3)平衡二叉树;(4)对于增量d=2按降序执行一遍希尔排序的结果。五、(本题15分)假设二叉树中每个结点所含数据元素均为单字母,以二叉链表

5、为存储结构,试编写算法按 如下图所示的树状显示二叉树。【答案】=一、单项选择题(1)B(2)D(3)A(4)B(5)B(6)C(7)A(8)C(9)B(10)B二、(本题8分)所构造的堆如下图所示:18J (烫(28:三、(本题8分)在先序序列空格中依次填ADKJ,中序中依次填BHG,后序中依次填DIEC。四、(每小题2分,共8分)(1)二叉排序例如下图所示:(2)哈夫曼例如下图所示:(3)平衡二叉例如下图所示:(4)对于增量d=2按降序执行一遍希尔排序的结果:28,80,27,24,23 五、(本题15分) 从上图来看,二叉树的第一层显示在第一列,第二层显示在第二列,第三层显示在第三列;每

6、行显示一个结点,从上至下是先显示右子树,再显示根,最后最左子树,也就是以先遍历右子 树,最后遍历左子树的中序遍历次序显示各结点。C语言版测试程序见exam110c,具体算当如下:void DisplayBTWithTreeShape(BiTree T,int level=1)/按树状形式显示二叉树,level为层次数,可设根结点的层次数为if(T)空树不显式,只显式非空树DisplayBTWithTreeShape(T-rchild,level+1);/显示右子树coutendl;显示新行for(int i=0;ilevel-1;i+)cout”;确保在第level列显示结点coutdata;

7、显示结点DisplayBTWithTreeShape(T-lchild,level+1);/显示左子树试题二、单项选择题(每小题2分,共20分)(1)设Huffman树的叶子结点数为m ,则结点总数为()。A)2mB)2m-1C) 2m+1D) m+1(2)若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储()个元素。A)nB)n-1C)n+1D)不确定(3)下述哪一条是顺序存储方式的优点?(A)存储密度大B)插入和删除运算方便C)获取符合某种条件的元素方便D)查找运算速度快(4)设有一个二维数组Amn,假设A00存放位置在600(10),A33存放位置在678(10),

8、每个元素占一个空间,问A23(10存放在什么位置?(脚注(10)表示用10进制表示,m3)()。A)658B)648C)633D)653(5)下列关于二叉树遍历的叙述中,正确的是()。A)若一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一 个结点B)若一个结点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一 个结点C)若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点D)若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点(6)k层二叉树的结点总数最多为()。A)2k-1B)2k+1C)K-

9、1D)k-1(7)对线性表进行二分法查找,其前提条件是()。A)线性表以链接方式存储,并且按关键码值排好序B)线性表以顺序方式存储,并且按关键码值的检索频率排好序C)线性表以顺序方式存储,并且按关键码值排好序D)线性表以链接方式存储,并且按关键码值的检索频率排好序(8)对n个记录进行堆排序,所需要的辅助存储空间为()。A)O(1og2n)B)O(n)C)O(1)D)O(n2)(9)对于线性表(7, 34, 77, 25, 64, 49, 20,14)进行散列存储时,若选用1(K)=K%7作为散列函数,则散列地址为0的元素有()个。A) 1B) 2C) 3D) 4(10)下列关于数据结构的叙述中

10、,正确的是()。A)数组是不同类型值的集合B)递归算法的程序结构比迭代算法的程序结构更为精炼C)树是一种线性结构D)用一维数组存储一棵完全二叉树是有效的存储方法二、(本题8分)假定一棵二叉树广义表表示为a(b(c),d(e,,f)分别写出对它进行先序、中序、后序、按层遍历 的结果。三、(本题8分)树有哪些遍历方法?它们分别对应于把树转变为二叉树的哪些遍历方法?四、(本题8分)设有数组A-1:3,0:6,-Z:薮行为主序存放在2000开始的连续空间中,如元素的长度是,试 计算出A1,1,1的存储位置。五、(本题8分)设有一个输入数据的序列是 46, 25, 78, 62, 12,试画出从空树起,

11、逐个输入各个数据而生 成的二叉搜索树。六、(本题15分)以二叉链表作存储结构,试编写计算二叉树中叶子结点数目的递归算法。【答案】=一、单项选择题(每小题2分,共20分)(1)B(2)B(3)A(4)D(5)A(6)A(7)C(8)C(9)D(10)D二、(本题8分)先序:a,b,c,d,e,f中序:c,b,a,e,d,f后序:c,b,e,f,d,a按层:a,b,d,c,e,f遍历序列为:abedc o三、(本题8分)树的遍历方法有先根序遍历和后根序遍历,它们分别对应于把树转变为二叉树后的先序遍历与 中序遍历方法。四、(本题8分)A1,1,1的存储位置=2000+(1-(-1)*(6-0+1)*

12、(3-(-2)+1) + (1-0)*(3-(-2)+1) + (1-(-2)*5=0465五、(本题8分)六、(本题15分)本题只要在遍历二叉树的过程序中对叶子结点进行记数即可。C语言版测试程序见exam210c,具体算当如下:long LeafCount(BiTree T)/计算二叉树中叶子结点数目if(T=NULL)return 0;/空树返回0else if(T-lchild=NULL&T-rchild=NULL)return 1;/只有一个结点的树返回1else叶子结点数为左右子树的叶子结点数之和return LeafCount(T-lchild)+LeafCount(T-rchil

13、d);试题二一、单项选择题(每小题2分,共20分)(1)对一个算法的评价,不包括如下()方面的内容。A)健壮性和可读性B)并行性C)正确性 D)时空复杂度(2)在带有头结点的单链表皿中,要向表头插入一个由指针p指向的结点,则执行()。A) p-next=HL-next; HL-next=p B) p-next=HL; HL=pC) p-next=HL; p=HLD) HL=p; p-next=HL(3)对线性表,在下列哪种情况下应当采用链表表示?()A)经常需要随机地存取元素B)经常需要进行插入和删除操作0表中元素需要占据一片连续的存储空间。)表中元素的个数不变(4)一个栈的输入序列为1 2

14、3则下列序列中不可能是栈的输出序列的是()。A) 2 3 1 B) 3 2 1 C) 3 1 2D) 1 2 3(5)每一趟都能选出一个元素放在其最终位置上,并且不稳定的排序算法是()。A)冒泡排序 B)简单选择排序C)希尔排序D)直接插入排序(6)采用开放定址法处理散列表的冲突时,其平均查找长度()。A)低于链接法处理冲突B)高于链接法处理冲突C)与链接法处理冲突相同D)高于二分查找(7)若需要利用形参直接访问实参时,应将形参变量说明为()参数。A)值B)函数 C)指针 D)引用(8)在稀疏矩阵的带行指针向量的链接存储中每个单链表中的结点都具有相同的)。A)行号B)列号C)元素值D)非零元素

15、个数(9)快速排序在最坏情况下的时间复杂度为()。A) O(log2n)B) O(nlog2n)C) O(n)D) O(n2)(10 )从二叉搜索树中查找一个元素时,其时间复杂度大致为()。A) O(n)B) O(1)C) O(log2n)D ) O(n2)二、(本题8分)如果在1000000个记录中找出两个最小的记录,你认为采用什么样的排序方法所需的关键字比 较次数最少?最多比较多少次?三、(本题8分) 假设把n个元素的序列(al,弘n)满足条件akmaxat|1tlchild);/左子树的深度d_rsub=BiTreeDepth(T-rchild);/右子树的深度返回左右子树的深度最大值力

16、mreturn (d_lsubd_rsub)?d_lsub:d_rsub)+1;试题四、单项选择题(每小题2分,共20分)(1)以下数据结构中哪一个是线性结构?()A)有向图B)栈 C)二叉树D)B树(2)若某链表最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用()存储方式最节省时间。A)单链表B)双链表C)带头结点的双循环链表D)单循环链表(3)()不是队列的基本运算。A)在队列第1个元素之后插入一个元素B)从队头删除一个元素C)判断一个队列是否为空D)读取队头元素的值(4)字符A、B、C、D依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组 成( )个不同的

17、字符串?A)15B)14C)16D)21(5)由权值分别为4,7,6,的叶子生成一棵哈夫曼树,它的带权路径长度为()。A)11B)37C)19D)53 以下6-8题基于下面的叙述:若某二叉树结点的中序遍历的序列为V、B、C、D、E、F、G,后序遍历的序列为B、D、C、A、F、G、E。(6)则该二叉树结点的前序遍历的序列为()。A) E、G、F、A、C、D、BC) E、A、C、B、D、G、F(7)该二叉树有()个叶子。A) 3B) 2(8)该二叉树的按层遍历的序列为(A)E、G、F、A、C、D、BB)E、A、G、C、F、B、DD)E、G、A、C、D、F、BC)5D) 4)。B)E、A、C、B、D

18、、G、FD)E、G、A、C、D、F、BC)E、A、G、C、F、B、D (9)下面的二叉树中,(C )不是完全二叉树。(10)设有关键码序列(q,g,m,z,,a)(A)a,g ,m,q,z B)a,g,m,z,q C)序列是从上述序列出发建的小根堆的结果。g,m,q,a,z D)g, m, a,q,z二、(本题8分)设有一个输入数据的序列是46, 25, 78, 62, 1,,试画出从空树起,逐个输入各个数据而生 成的二叉排序树。三、(本题8分)给定一个关键字序列24, 19, 32, 43, 38, 6, 13, 22,请写出快速排序第一趟的结果; 堆排序时所建的初始堆;然后回答上述两种排序

19、方法中哪一种方法使用的辅助空间最小,在最 坏情况下哪种方法的时间复杂度最差?四、(本题8分)设二维数组A0:10,-5:0按行优先顺序存储,每个元素占4个单元,A0-5的存储地址为1000,则A9-2的存储地址为多少?五、(本题8分)用一维数组存放的一棵完全二叉树:ABCDEFGHIJKL。请写出后序遍历该二叉树的访问结点序 列。六、(本题8分)请说明对一棵二叉树进行前序、中序和后序遍历,其叶结点的相对次序是否会发生改变?为什 么?七、(本题9分)已知一棵二叉树的先序序列与中序序列分别如下,试画出此二叉树。先序序列:ABCDEFGHIJ中序序列:CBEDAGHFJI八、(本题15分)已知二叉排

20、序树采用二叉链表存储结构,根结点的指针为,请写出递归算法,从小到大输出 该二叉排序树中所有关键字值添的结点的关键字的值。【答案】=一、单项选择题(每小题2分,共20分)(1) B (2) C(3) A (4) B(5) B(6) C (7) A (8) C(9) C(10) B二、(本题8分)如下图所示:三、(本题8分)快速排序的第一趟结果为22,19,13,6,24,38,43*堆排序时所建立的初始大顶堆如所图所示:两种排序方法所需辅助空间:堆是0(1),快速排序是O(logn),可见堆排序所需辅助空间较少;在最坏情况下两种排序方法所需时间:堆是)(nlogn),快速排序是0(n2),所以,

21、可见快速排 序时间复杂度最差。注意:快速排序的平均时排序速度最快,但在最坏情况下不一定比其他排序方法快。四、(本题8分)依题意A的起始地址为1000,则有:Loc(9,-2)=1000+(9-0)*(0-(-5)+1) + (-2-(-5)*4=1228五、(本题8分)先画出该二叉树的树形结构。对其进行后序遍历得到后序序列为HIDJKEBLFGCA。六、(本题8分)二叉树任两个中叶结点必在某结点的左右子树中,三种遍历方法对左右子树的遍历都是按左子 树在前、右子树在后的顺序进行遍历的。所以在三种遍历序列中叶结点的相对次序是不会发生 改变的。七、(本题9分)先由先序序列的第一个结点确定二叉树的根结

22、点,再由根结点在中序序列中左侧部分为左子树 结点,在右侧部分为右子树结点,再由先序序列的第一个结点确定根结点的左右孩子结点,由 类似的方法可确定其他结点,如下图所示。八、(本题15分)由于二叉排序树是中序有序的,因此对二叉排序树采用中序遍历依次输出大于等卡的结点即 可。C语言版测试程序见exam410c,具体算当如下:void DisplayKey(BiTree T,KeyType K)/从小到大输出该二叉排序树中所有关键字值口的结点的关键字的值if(T)DisplayKey(T-lchild,K);输出左子树if(T-data.key=K)coutdata.keyrchild,K);输出右子

23、树试题五一、单项选择题(每小题2分,共20分)(1)队列的特点是()。A)先进后出B)先进先出C)任意位置进出。)前面都不正确(2)有n个记录的文件,如关键字位数为!,基数为r,则基数排序共要进行()遍分配与收集。A)nB)dC)rD)n - d(3)在二叉树结点的先序序列、中序序列和后序序列中,所有叶子结点的先后顺做)。A)都不相同B)完全相同C)先序和中序相同,而与后序不同 D)中序和后序相同,而与先序不同(4)限定在一端加入和删除元素的线性表称为()。入)双向链表B)单向链表C)栈。)队列(5)快速排序执行一遍之后,已经到位的元素个数是()。nnA)1B)3C)4D)2(6)设森林F对应

24、的二叉树为B,它有m个结点,B的根为p,p的右子树上的结点个数为n,森林F中第一棵树的结点个数是()。A)m-n-1B)n+1C)m-n+1 D)m-n(7)设有198个初始归并段,如采用K-路平衡归并三遍完成排序,则K值最大为()。A) 12B) 13C) 14D) 15(8) 下面关于广义表的叙述中,不正确的是()。A)广义表可以是一个多层次的结构B)广义表至少有一个元素C)广义表可以被其他广义表所共享D)广义表可以是一个递归表(9) 设二叉树根结点的层次为0,一棵深度(高度)为k的满二叉树和同样深度完全二叉树各 有f个结点和c个结点,下列关系式不正确的是()。A) f=c B) cf C

25、) f=2k+1-a D) csk-1(10 )从L=(apple,pear),(orange,bana中,)取出banana 元素的表达式为()。A) head(tail(L)B ) head(head(tail(L)C) tail(head(tail(L)D ) head(tail(head(tail(L)四、(每小题4分,共8分)判断以下序列是否是小根堆如果不是,将它调整为小根堆。(1) 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 (2) 05, 23, 20, 28, 40, 38, 29, 61, 35, 76, 47, 100 六、(每小题2分,共

26、8分)设有12个数据25,40,33,47,12,66,72,87,94,22, 5它们存储在散列表中,利用线性探测再散列处理冲突,取散列函数为H(key)=key % 13(1) 顺次将各个数据散列到表中,并同时列出各元素的比较次数。(2) 计算查找成功的平均查找次数。八、(本题8分)已知一棵树边的结点为:(I,M),(I,N),(E,I),(B,E),(B,D),(C,B),(G,J),(G,K),(A,G),(A,F),(H,L),(A,H),(C,A)哪个是根结点? 哪些是叶子结点? 例的深度是多少?试画出这棵树,并回答下列问题:(1)(2)(3)九、(本题9分)给出一组关键字T=(1

27、2,2,16,30,8,28,4,10,20,6,写出用下列算法从小到大排序时第一趟结束 时的序列。(1)希尔排序(第一趟排序的增量为5)(2)快速排序(选第一个记录为枢轴)十、(本题15分)编写复制一棵二叉树的非递归算法。【答案】=一、单项选择题(每小题2分,共20分)(1)B(2)B(3)B(4)C(5)A(6)D(7)C(8)B(9)B(10)D四、(每小题4分,共8分)(1)不是小根堆。调整为:12,24,33,65,33,56,48,92,86,70(2)是小根堆。六、(每小题2分,共8分)(1) 取散列函数为H(key)=key % 13(2) 顺次将各个数据散列到表中,并同时列出

28、各元素的比较次数如下表所示。各元素的比较次数01234891011121314关键 字40669455833477287222512比较(4)计算查找成功的平均查找次数(1x7+2x3+3x2) /12=19/12。八、(本题8分)【解答】树,如下图所示:(1) C是根结点。(2) F, K, L,H,D,M,N 是叶子结点。(3) 深度是5。九、(本题9分)(1 )(12,2,10,20,6,18,4,16,30,)8,28(2) (6,2,10,4,8,12,28,30,20, )6,18十、(本题15分)可采用层次遍历的方式进行复制,将已复制的结点进入一个队列中即可。C语言版测试程序见e

29、xam510c,具体算当如下:void CopyBiTree(BiTree T_from,BiTree &T_to)/复制二叉树T_from到T_to的非递归算法if(T_from=NULL)空二叉树的处理T_to=NULL; return;LinkQueue Q_from,Q_to;BiTNode *e_from,*e_to;InitQueue(Q_from);InitQueue(Q_to);T_to=new BiTNode;T_to-data=T_from-data;复制根结点EnQueue(Q_from,T_from);EnQueue(Q_to,T_to);/入队while(QueueE

30、mpty(Q_from)=FALSE)DeQueue(Q_from,e_from);DeQueue(Q_to,e_to); /出队if(e_from-lchild!=NULL)复制e_from左孩子e_to-lchild=new BiTNode;e_to-lchild-data=e_from-lchild-data;EnQueue(Q_from,e_from-lchild);EnQueue(Q_to,e_to-lchild)入队 elsee_to-lchild=NULL;左孩子为空if(e_from-rchild!=NULL)/复制e_from右孩子e_to-rchild=new BiTNod

31、e;e_to-rchild-data=e_from-rchild-data;EnQueue(Q_from,e_from-rchild);EnQueue(Q_to,e_to-rchild);入队 elsee_to-rchild=NULL;/右孩子为空试题六、单项选择题(每小题2分,共20分)(1)下列文件的物理结构中,不利于文件长度动态增长的文件物理结构是()。A)顺序结构B)链接结构C)索引结构 D)Hash结构(2)在数据结构中,数据元素可由()。A)实体 B)域C)数据项D)字段(3)对于有n个顶点的有向图,由弗洛伊德Floyd)算法求每一对顶之间的最短路径的时间复杂度是()。A)O(1)

32、B)O(n)C)O(n)D)O(n3)(4)对n个记录的文件进行快速排序,所需要的辅助存储空间为()。A)O(1) B)O(log2n) C)O(n) D)O(n2)(5)哈夫曼树中一定不存在()。A)度为0的结点 B)度为1的结点 C)度为2的结点D)带权的结点(6)设 D=A,B,C,D R=,则数据结构(D,R是()。A)树B)图B)线性表 D)前面都正确(7)()关键码序列不符合堆的定义。A)A、C、D、G、H、M、P、Q、R、XB)A、C、M、D、H、P、X、G、Q、RC)A、D、P、R、C、Q、X、M、H、GD)A、D、C、M、P、G、H、X、R、Q(8)假定关键字K=442205

33、883,允许存储地址为四位十进制数,并目ash地址为6111,则所采用的构造Hash函数的方法是()。A)直接定址法B)平方取中法C)除留余数法,模为97 D)折叠法(9)在算法的时间复杂度中,n表示问题规模,f(n表示基本操作重复执行的次数,则随问题的规模n的增大,算法执行时间的增长率同()相同。A)f(n) B)n C)O(n)D)前面都不正确(10)对线性表进行二分法查找,其前提条件是()。A)线性表以顺序方式存储,并且按关键码值排好序B)线性表以顺序方式存储,并且按关键码值的检索频率排好序C)线性表以链接方式存储,并且按关键码值排好序D)线性表以链接方式存储,并且按关键码值的检索频率排

34、好序二、(本题8分)在如下表所示的数组A中链接存储了一个线性表表头指针存放在A0.nex,ta写出该线性表 线性表A0123456Data6050789034next4052717403三、(本题8分)已知一棵二叉树的前序遍历的结果是ABKCDFGHIJ,中序遍历的结果是KBCDAFHIGJ,试画出 这棵二叉树。五、(本题8分)向最小根堆中依次插入数据4, 2, 5, 8, 3, 6寸,10画出每插入一个数据后堆的变化。八、(本题8分)给出一组关键字29、18、25、47、58、12、51、10,分别写出按下列各种排序方法进行排序 时的变化过程:(1) 归并排序,每归并一次书写一个次序。(2)

35、 快速排序,每划分一次书写一个次序以及最后排好序后的序列。(2) 快速排序:(10,18,25,12)29(58,51,47)(10(18,25,12)29(47,51)58)(10(12) 18(25)29(47(51)58)(10,12,18,25,29,47,51,58)(3) 堆排序,先建成一个堆,然后每从堆顶取下一个元素后,将堆调整一次九、(本题9分)试分别画出具有3个结点的树和具有3个结点的二叉树的所有不同形态。十、(本题15分)设计以单链表存储的两个集合求交集的算法。【答案】=一、单项选择题(每小题2分,共20分)(5)B(10)A(1)A(2)C(3)D(4)B(6)B(7)C

36、(8)D(9)A二、(本题8分)线性表为:(90,40,78,50,34,60)三、(本题8分)五、(本题8分) 如下图所示:八、(本题8分)变化过程如下:(1) 归并排序:(18,29)(25,47)(12,58)(10,51)(18,25,29,47)(10,12,51,58)(10.12.18.25.29.47.51.58)(2) 快速排序:(10,18,25,12)29(58,51,47)(10(18,25,12)29(47,51)58)(10(12) 18(25)29(47(51)58)(10.12.18.25.29.47.51.58)(3) 堆排序: 初始堆(大顶推):(58,47

37、,51,29,18,12,25,10)第一次调整:(51,47,25,29,18,12,10)(58)第二次调整:(47,29,25,10,18,12)(51,58)第三次调整:(29,18,25,10,12)(47,51,58)第四次调整:(25,18,12,10)(29,47,51,58)第五次调整:(l8,10,12)(25,29,47,51,58)第六次调整:(l2,10)(18,25,29,47,51,58)第七次调整:(l0,12,18,25,29,47,51,58)九、(本题9分)具有3个结点的树的不同形态如下图所示。具有3个结点的二叉树的不同形态如下图所示。十、(本题15分)则

38、将其用单链表lc表示集合C。分别将la中元素取出,再在lb中进行查找,如在任中出现, 插入到lc中。C语言版测试程序见exam610c,具体算当如下:void interaction(LinkList la,LinkList lb,LinkList &lc)/将链表弟与lb中共同出现的元素插入到链表1。中LinkList pa,pb,pc;lc=new LNode;/生成lc的头结点pc=lc;/pc永远指向驻的尾结点pa=la-next;/pa指向姑的第一元素while(pa)pb=lb-next;while(pb&pb-data!=pa-data)pb=pb-next;/在pb中定位pa-dataif(pb)/定位成功pc-next=new LNode;/生成lc新的尾结点/pc指向新的尾结点/将 pa-data 复制到 pc 中pc=pc-next;pc-data=pa-data;pa=pa-next;/pc为尾结点,其后继为空pc-next=NULL;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号