1、()oA) 用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与顶点个数 无关B) 用邻接表法存储图,占用的存储空间大小与图中边数和顶点个数都有关C) 用邻接矩阵法存储图,占用的存储空间大小与图中顶点个数和边数都有关D) 用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与顶点个 数无关(10)设有关键字序列Cq; g, W, z; a; h, p, x; h),下面哪一个序列是从上述序列出发建堆的结果?A) 匕,g V, d, p, q, 乂, *z B)工 g h; q, h, p, * N c)g m, q, x h,p, X;h, h D) h, g m, p, a,h,
2、 q, X; r二、(每小题4分,共8分)已知一个6x5稀疏矩阵如下所示,试:(1) 写出它的三元组线性表;(2) 给岀三元组线性表的顺序存储表示。三、 (本题8分)求网的最小生成树有哪些算法?它们的时间复杂度分别下多少,各适用何种情 况?四、 (每小题4分,共8分)对于如下图所示的有向图采用邻接表存储结构,并且每个顶点邻接表屮的边结点都是 按照终点序号从小到大的次序链接的,试写出:(1) 从顶点vl岀发进行深度优先搜索所得到的顶点序列;(2) 从顶点v2出发进行广度优先搜索所得到的顶点序列。五、 (本题8分)已知一个图的顶点集V和边集E分别为:V二123,4,5,6,7;E= ,3,64,3
3、4,54,65,1 5,76,1 6,26,5;若釆用邻接表存储结构,并且每个顶点邻接表中的边结点都是按照终点序号从小到大 的次序链接的,试给出得到的拓扑排序的序列(入度为零的顶点可采用栈或队列来进行存 储)。六、 (本题8分)对于序列8,1 &6,16,29,28,试写出堆顶元素最小的初始堆。七、 (本题8分)一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来。试求出空 格处的内容。先序序列:_B_F_ICEH_G中序序列:D KFIA EJC后序序列:K_FBHJ_G_A八、 (每小恵2无共龄厂设有序列:w二23,24,27,80,28,试给出:(1) 二叉排序树;(2) 哈
4、夫曼树;(3) 平衡二叉树;(4) 对于增量d=2按降序执行一遍希尔排序的结果。九、 (本题9分)有关键字序列7,23,6,9,17,19,21,22,5, Hash函数为H(key)=key % 5,采用链地址法处 理冲突,试构造哈希表。十、(本题15分)假设二叉树屮每个结点所含数据元素均为单字母,以二叉链表为存储结构,试编写算法 按如下图所示的树状显示二叉树。ceadb模拟试题(一)参考答案一、 单项选择题(1) B (2) D (3) A (4) B (5) B(6) C (7) A (8) C (9) B (10) B二、 (每小题4分,共8分)(1) (1,5,1 ),(3,2,-1
5、 ),(4,5,-2),(5,1,5),(6,3,7)(2) 三元组线性表的顺序存储表示如下所示:6 5 5 1 5 13 2-14 5-25 1 56 2 7求网的最小生成树可使用Prim算法,吋I可复杂度为O(n2),此算法适用于边较多的稠 密图,也可使用Kruskal算法,时间复杂度为O(eloge),此算法适用于边较少的稀疏图。(1) DFS: vl v2 v3 v4 v5(2) BFS: v2v3v4v5vl用栈存储入度为零的顶点得到的拓扑排序为:4365721用队列存储入度为零的顶点得到的拓扑排序为:4362517所构造的堆如下图所示:7. (本题8分)在先序序列空格屮依次填ADK
6、J,八、 (每小题2分,共8分)二叉排序树如下图所示:(1)屮序屮依次填BHG,后序屮依次填DIECo(2)哈夫曼树如下图所示:(3)(4)九、(本题9分)对于增量d=2按降序执行一遍希尔排序的结果:28,80,27,24,23哈希表如下图所示:5|A6 IA+0可 +22|八23|AMa+ (本题15分)从上图来看,二叉树的第一层显示在第一列,第二层显示在第二列,第三层显示在第 三列;每行显示一个结点,从上至下是先显示右子树,再显示根,最后最左子树,也就是以先遍历右子树,最后遍历左子树的中序遍历次序显示各结点。 具体算法实现如下:文件路径幺:examl alg.htemplate void
7、DisplayHelp(BinTreeNode *r, int level)操作结果:按树状形式显示以r为根的二叉树,level为层次数,可设根结点的层次数为1if(r != NULL)/显示右子树/显示新行/确保在第level列显示结点/显示结点/显示左子树 /空树不显式,只显式非空树DisplayHelprightChild, level + 1); cout endl;for(int i = 0; i data;leflChild, level + 1);Ivoid Display(const BinaryTree3)( )。A) 658 B) 648 C) 633 D) 653(5)下
8、列关于二叉树遍历的叙述中,正确的是( )。A) 若一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前 序遍历最后一个结点B) 若一个结点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序 遍历的最后一个结点C) 若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点D)若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历 最后一个结点(6) k层二叉树的结点总数最多为( )。A) 2k-l B) 2k+, C) 2K-1(7) 对线性表进行二分法查找,其前提条件是(A)C)线性表以链接方式存储, 线性表以顺序方式存储, 线性表以顺序方
9、式存储, 线性表以链接方式存储,2k*并且按关键字值排好序并且按关键字值的检索频率排好序 并且按关键字值排好序并且按关键字值的检索频率排好序(8) 对n个记录进行堆排序,所需要的辅助存储空间为( )。A) O(log2n) B) O(n) C) 0(1) D)(9) 对于线性表(7, 34, 77, 25, 64, 49, 20, 14)进行散列存储时, 二K%7作为散列函数,则散列函数值为为0的元素有(A) 1 B) 2 C)(10) 下列关于数据结构的叙述中,正确的是()个。3 D)数组是不同类型值的集合递归算法的程序结构比迭代算法的程序结构更为精炼 树是一种线性结构用一维数组存储一棵完全
10、二叉树是有效的存储方法O(n2) 若选用H (K)二、 (本题8分)有5个元素,其入栈次序为:A、B、C、D、E,在各种可能的出栈次序中,以元素 C第一个出栈,D第二个出栈的次序有哪几个?三、 (每小题4分,共8分)已知一个无向图的顶点集为a, b, c, d, e,其邻接矩阵如下所示:0100110010000110110110110(1) 画出该图的图形;(2) 根据邻接矩阵从顶点a出发进行深度优先遍历和广度优先遍历,写11!相应的遍 历序列。四、 (本题8分)树有哪些遍历方法?它们分别对应于把树转变为二叉树的哪些遍历方法?将关键字序列(7、8、11、18、9、14,30)散列存储到散列列
11、表中,散列表的存储空 间是一个下标从0开始的一个一维数组,散列函数为:H(key)= (key* 3) %m(m为表长), 处理冲突采用线性探测再散列法,要求装填(载)因子为0.7,请画出所构造的散列表;计 算查找成功的平均查找长度。试列出如下图屮全部可能的拓扑排序序列。请说明对一棵二叉树进行按照先遍左子树,后右子树的方式进行前序、中序和后序遍 历,其叶结点的相对次序是否会发生改变?为什么?八、 (本题8分)设有一个输入数据的序列是46,25,78,62,12,80 ,试画出从空树起,逐个输入各个 数据而生成的二叉排序树。试画出表达式(a+b/c)*(df)的二叉树表示,并写出此表达式的波兰式
12、表示,中缀表示 及逆波兰式表示。以二叉链表作存储结构,试编写计算二叉树中叶子结点数目的递归算法。模拟试题(二)参考答案一、 单项选择题(每小题2分,共20分)(1) B (2) D (3) B (4) D (5) A(6) A (7) C (8) C (9) D (10) D按照栈的特点可知以元素C第一个出栈,D第二个出栈的次序有CDEBA、CDBAE和 CDBEA 3 种。【解答】(1)该图的图形如下图所示:(2)深度优先遍历序列为:abdce;广度优先遍历序列为:abedco树的遍历方法有先根序遍历和后根序遍历,它们分别对应于把树转变为二叉树后的先 序遍历与中序遍历方法。由装载因子0.7,
13、由于有7个数据元素,可得7/m=0.7,从而m=10,所以,构造的散 列表为:下标123456789关键字30141118比较次数H (7) = (7*3) % 10=1H (8) = (8*3) % 10=4H (II) = (11*3) % 10=3H (18) = (18*3) % 10=4H (9) = (9*3) % 10=7H (14) = (14*3) % 10=2H (30) = (30*3) % 10=2(2) 查找成功的 ASL=( 1+1+1+14-1+2+1 )/7=8/7全部可能的拓扑排序序列为:1523634、152634、156234、561234、516234、
14、512634、 512364二叉树任两个中叶结点必在某结点的左/右子树中,三种遍历方法对左右子树的遍历都 是按左子树在前、右子树在后的顺序进行遍历的。所以在三种遍历序列中叶结点的相对次 序是不会发生改变的。62129. (本题9分)表达式的波兰式表示,中缀表示及逆波兰式表示分别是此表达式的二叉树表示的前序 遍历、中序遍历及后序遍历序列。二叉树表示如下图所示:波兰式表示:中缀表示:a+b/c*d-e*f逆波兰式表示:abcZ+def*-*十.(本题15分)本题只要在遍历二叉树的过程序中对叶子结点进行记数即可。文件路径名:exarn2alg.hlong LeafCountHelp(BinTreeN
15、ocleleftChild = NULL &rightChild = NULL)(/只有一个结点的树return 1; /只有一个结点的树返回1else(/其他情况,叶子结点数为左右子树的叶子结点数之和return LeafCountHelp(r-leftChild) + LeafCountHelp(r-rightChild);long LeafCount(const B i njir)-T ree计算二叉树中叶子结点数目return LeafCountHelp(bt.GetR(x)t(); /调用辅助函数实现计算二叉树中叶子结点数H模拟试题(三)(1) 对一组数据(2, 12, 16, 88
16、, 5, 10)进行排序,若前三趟排序结果如下 第一趟:2, 12, 16, 5,第二趟:2, 12, 5, 10, 第三趟:2, 5, 10, 12,则采用的排序方法可能是(10,16,88)。A)起泡排序 B)希尔排序 C)归并排序 D)基数排序(2) 在带有头结点的单链表HL中,要向表头插A个由指针p指向的结点,则执行(A) p-next=HL- HL-next=p B) p-next=HL; HL=p p=HL D) HL=p;next=HL(3) 对线性表,在下列哪种情况下应当采用链表表示?A)经常需要随机地存取元素 B)经常需要进行插入和删除操作C)表中元素需要占据一片连续的存储空
17、间D)表中元素的个数不变(4) 一个栈的输入序列为123,则下列序列中不可能是栈的输出序列的是(A) 23 1 B) 321 0 3 12 D) 123(5) 每一趟都能选出一个元素放在其最终位置上,并且不稳定的排序算法是( A)冒泡排序 B)简单选择排序C)希尔排序 D)直接插入排序(6) 采用开放定址法处理散列表的冲突时,其平均查找长度(A)低于链接法处理冲突C)与链接法处理冲突相同(7) 若需要利用形参直接访问实参时,A)值 B)函数B) 高于链接法处理冲突D)高于二分查找 应将形参变量说明为( )参数。C) 指针 D)引用(8) 为解决计算机与打印机Z间速度不匹配的问题,通常设置一个打
18、印数据缓冲区, 主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲 区的逻辑结构应该是(A)栈B)队列C)树D)图在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( )0A)行号B)列号C)元素值 D)非零元素个数(9) 快速排序在最坏情况下的时间复杂度为( )。A) O(log2n) B) O(nlog2n) C) 0(n) D) 0(n )(10) 从二叉搜索树中查找一个元素吋,其吋间复杂度大致为( )。A) O(n) B) 0(1) C) O(log2n) D) O(n2)V二1,2,3,4,5,6,7;E=(1,2)3,( 1,3)5,(
19、 1,4)8,(2,5)10,(2,3)6,(3,4) 15,(3,5) 12,(3,6)9,(4,6)4,(4,7)20,(5,6) 18,(6,7)25; 用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。请画出如下图所示的邻接矩阵和邻接表。四、(每小题4分,共8分)设有如下图所示的AOE网(其中vi (i=l, 2,,6)表示事件,有向边上的权值表示 活动的天数)。1 设最短路径初始时仅包含初始顶点,令当前顶点U为初始顶点;2 选择离U最近且尚未在最短路径屮的一个顶点V,加入到最短路径中,修改当前顶 点 u=v;3 重复步骤,直到U是目标顶点时为止。请问上述方法能否求
20、得最短路径?若该方法可行,请证明之;否则,请举例说明。已知一组关键字为(19,14,23,1,68,20,84,27,55,11,10,79),哈希函数:H(key)=key MOD13,哈希地址空间为012,请构造用链地址法处理冲突的哈希表,并求平均查找长度。已知关键字序列23, 13, 5, 28, 14, 25,试构造二叉排序树。编写一个算法求二又树的深度。模拟试题(三)参考答案(1) A (2) A (3) B(6) B (7) D (8) B用克鲁斯卡尔算法得到的最小生成树为:(1,2)3, (4,6)4, (1,3)5,三、 (本题8分) 邻接矩阵:(14)& (25)10,邻接表
21、如下图所示:(4) C(9) D(4,7)20(5) B(10) Co0 11110 1()110 110 10四.(每小题4分,共8分)(1) 找出所有的关键路径有:vlfv2v3fv5fv6,以及vlv4-*v6。(2) v3事件的最早开始吋间是13。五、(本题8分)如下图所示的有向图,只有一个顶点的入度为0外,其他每个顶点的入度都为1,因 为非连通,所以此图却不是有向树。不对,例如序列3、3、4、2、1的“逆序元素”个数是2, 2和1是“逆序元素”; 但是将第二个3和2交换后,成为3、2、4、3、1,此吋“逆序元素”个数是3, 2、3 和1是“逆序元素”。然而交换后一定减少的是“逆序对”
22、的个数,例如上例中3、3、4、 2、1的逆序对的个数是7,交换第二个3和2后,3、2、4、3、1的逆序对的个数是6。七、 (每小题4分,共8分)该方法求得的路径不一定是最短路径。例如,对于下图所示的带权图,如果按照题中 的原则,从A到C的最短路径为A-B-C,事实上其最短路径为A-D-C。4- 79 A八、(本题8分)用链地址法处理冲突的哈希表如下图所示:10ASL= (1 *6+2*4+3* 1 +4* 1)= 1.75 12构造二叉排序树的过程如下图所示。(b)(f)(c)23构造的二叉排序树如下图所示:则二叉树的深度为左右子树深度的最大值若二叉树为空,深度为0;若二叉树不空, 加1。本题最简单算法是递归算法。具体算法实现如下:/文件路径名:exam3iilg.h template int DepthHelp(BinTreeNodeleftChild); / 左子树的深度int rDepth = DepthHelp(r- / 右子树的深度return (lDepth rDepth) ? IDepth :
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1