1、数据结构期末复习题一、单选题 1某程序的时间复杂度为(3n+nlog 2n+n2+8), 其数量级表示为( C ) 。AO(n) BO (nlog 2n) CO(n 2) DO (log 2n)2队列的插入操作是在( B )进行。A队首 B队尾 C队前 D对后3二叉树上叶结点数等于( C ) 。A分支结点数加 1 B单分支结点数加 1 C双分支结点数加 1 D双分支结点数 减 14每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做( A )排序A插入 B交换C选择 D归并5在一个图中,所有顶点的度数之和等于所有边数的( A )倍。A2 B1C3 D46队列的删除操作是在
2、( A )进行。A队首 B队尾 C队前 D对后7当利用大小为 N 的数组顺序存储一个栈时,假定用 top = = N 表示栈空,则退栈时,用( A )语句修改 top 指针。Atop+; Btop=0; Ctop-; Dtop=N;8由权值分别为 3,6,7,2,5 的叶子结点生成一棵哈夫曼树,它的带权路径长度为( A )。A51 B23C53 D749在一棵二叉树中,第 4 层上的结点数最多为( B )。A31 B8C15 D1610 向堆中插入一个元素的时间复杂度为( A ) 。AO(log 2n) BO(n) CO(1) D16 O(nlog 2n)11在一个长度为 n 的顺序存储的线性
3、表中,向第 i 个元素(1i n+1)之前插入一个新元素时,需要从后向前依次后移( B )个元素。An-i Bn-i+1Cn-i-1 Di12在线性表的散列存储中,若用 m 表示散列表的长度,n 表示待散列存储的元素的个数,则装填因子等于( A ) 。An/m Bm/n Cn/(n+m) Dm/(n+m)13从一棵 B_树删除元素的过程中,若最终引起树根结点的合并,则新树高度是( ) 。A原树高度加 1 B原树高度减 1 C原树高度 D不确定14在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的( B ) 。A行号 B列号 C元素值 D地址15在一个具有 n 个顶点的无向图
4、中,要连通所有顶点则至少需要( C )条边。An B2nCn-1 Dn+116某程序的时间复杂度为(10n+nlog 2n+n2), 其数量级表示为( C ) 。AO(n) BO (nlog 2n) CO(n 2) DO (log 2n)17在一个长度为 n 的顺序存储的线性表中,向第 i 个元素(1i n+1)之前插入一个新元素时,需要从后向前依次后移( )个元素。An-i Bn-i+1Cn-i-1 Di18在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定(A )该结点的值。A小于 B大于C不小于 D大于等于19对于一棵具有 n 个结点的树,该树中所有结点的度数之和为( A) 。A
5、n-1 Bn Cn+1 D2n20某程序的时间复杂度为(3n+100log 2n+ nlog2n), 其数量级表示为( ) 。AO(n) BO (nlog 2n) CO(100) DO (log 2n)21. 设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字 5 为基准进行一趟快速排序的结果为( C) 。A. 2,3,5,8,6 B. 3,2,5,8,6C.3,2,5,6,8 D. 2,3,6,5,822根据 n 个元素建立一棵二叉搜索树时,其时间复杂度大致为(D ) 。AO(n) BO(log 2n ) CO(n 2) DO(nlog 2n) 23. 按照数据逻辑结构的不同
6、,可以将数据结构分成 C 。 A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构 D. 内部结构和外部结构24. 下列关于数据结构的叙述中正确的是 A 。 A. 数组是同类型值的集合 B. 递归算法的程序结构比迭代算法的程序结构更为复杂 C. 树是一种线性的数据结构D. 用一维数组存储二叉树,总是以先序顺序遍历各结点 25. 在计算机的存储器中表示时,物理地址与逻辑地址相同并且是连续的,称之为 B A.逻辑结构 B.顺序存储结构C.链式存储结构 D.以上都不对26. 以下关于算法特性的描述中, B 是正确的。 (1)算法至少有一个输入和一个输出(2)算法至少有一个输
7、出但是可以没有输入(3)算法可以永远运行下去A. (1) B. (2) C. (3) D. (2)和(3)27. 对顺序存储的线性表(a 1,a2,an)进行插入操作的时间复杂度是 C 。 A.O(n) B. O(n-i) C. (n/2) D. O(n-1)28. 链表不具有的特点是 A 。A.可随机访问任一元素 B.插入和删除时不需要移动元素C.不必事先估计存储空间 D.所需空间与线性表的长度成正比29.线性链表中各链结点之间的地址 C 。A.必须连续 B.部分地址必须连续C.不一定连续 D.连续与否无关30. 以下关于链式存储结构的叙述中, C 是不正确的。 A.结点除自身信息外还包括指
8、针域,因此存储密度小于顺序存储结构B.逻辑上相邻的结点物理上不必邻接C.可以通过计算直接确定第 i 个结点的存储地址D.插入、删除操作方便,不必移动结点31. 设依次进入一个栈的元素序列为 d, a, c, b,得不到出栈的元素序列为 D 。A. dcba B. acdb C. abcd D. cbda32. 将新元素插入到链式队列中时,新元素只能插入到 B 。A. 链头 B. 链尾 C. 链中 D. 第 i 个位置,i 大于等于 1,大于等于表长加 133. 设栈 S 和队列 Q 的初始状态为空,元素 e1、e2、e3 、 e4、e5 和 e6 依次通过栈 S,一个元素出栈后即进入队列 Q,
9、若 6 个元素出队的顺序是 e2、 e4、e3 、e6、e5、和 e1,则栈 S容量至少应该是 C 。 A. 6 B. 4 C. 3 D. 234.下面 D 是abcd321ABCD 的子串。A. abcd B. 321ab C. abc ABC D. 21AB35.假设 8 行 10 列的二维数组 A18,110 分别以行序为主序和以列序为主序顺序存储时,其首地址相同,那么以行序为主序时元素 a3,5的地址与以列序为主序时 C 元素相同。A. a7, 3 B. a8,3 C. a1,4 D. ABC 都不对36. 数组 A05,06的每个元素占 5 个字节,将其按列优先次序存储在起始地址为1
10、000 的内存单元中,则元素 A5,5 的地址为 A 。 A. 1175 B. 1180 C. 1205 D.1210 37.下列广义表中,长度为 3 的广义表为 B 。A.(a,b,c,( ) ) B. (g),(a,b,c,d,f),( ) C. (a,(b,(d) D. ( )38. 在一个单链表中,若 q 所指结点是 p 所指结点的前驱结点,若在 q 与 p 之间插入一个 s所指的结点,则执行( )。A. slink=plink; plink=s; B. plink=s; slink=q;C. plink=slink; slink=p; D. q link=s; slink =p;39
11、.若树 T 有 a 个度为 1 的结点,b 个度为 2 的结点,c 个度为 3 的结点,则该树有 D 个叶结点。A. 1+2b+3c B. a+2b+3c C.2b+3c D. 1+b+2c40.若一棵二叉树有 102 片叶子结点,则度二叉树度为 2 的结点数是 B 。A. 100 B. 101 C. 102 D. 10341. 在有 n 个叶子结点的霍夫曼树中,其结点总数为: 。 A. n B. 2n C. 2n +1 D. 2n - 142.具有 12 个结点的完全二叉树有 B 。A. 5 个叶子结点 B. 5 个度为 2 的结点C. 7 个分支结点 D. 2 个度为 1 的结点43.设结
12、点 x 和 y 是二叉树中的任意两结点,若在先根序列中 x 在 y 之前,而后根序列中 x在 y 之后,则 x 和 y 的关系是 C 。A. x 是 y 的左兄弟 B. x 是 y 的右兄弟C. x 是 y 的祖先 D. x 是 y 的后代44. 先序遍历序列与中序遍历序列相同的二叉树为 。 A. 根结点无左子树的二叉树 B.根结点无右子树的二叉树C. 只有根结点的二叉树或非叶子结点只有左子树的二叉树D. 只有根结点的二叉树或非叶子结点只有右子树的二叉树45.若二叉树 T 的前序遍历序列和中序遍历序列分别是 bdcaef 和 cdeabf,则其后序遍历序列为 A 。A. ceadfb B. f
13、eacdb C. eacdfb D. 以上都不对46.设无向图的顶点个数为 n,则该图最多有 C 条边。A. n-1 B. n(n-1) C. n(n-1)/2 D. N47.对于一个有 n 个顶点和 e 条边的无向图,若采用邻接表表示,邻接表中的结点总数是 C 。A. e/2 B. e C. n+2e D. n+e48. 无向图 G=(V,E) ,其中 V=a,b,c,d,e,f,E= (a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d) 。对该图进行深度优先遍历,下面不能得到的序列是 D 。A. acfdeb B. aebdfc C. aedfcb D. ab
14、ecdf49. 直接插入排序在最好情况下的时间复杂度为 B 。A. O(log2n) B. O(n) C. O(nlog2n) D. O(n2) 50.对有 n 个记录的表作快速排序,在最坏情况,算法的时间复杂度是 D 。A. O(n3) B. O(n) C. O(nlog2n) D. O(n2) 30.下面的排序算法中,稳定是 A 。A. 直接插入排序法 B. 快速排序法 C. 直接选择排序法 D. 堆排序法51数据结构是( )A一种数据类型B数据的存储结构C相互之间存在一种或多种特定关系的数据元素的集合D一组性质相同的数据元素的集合52在线性表的下列运算中,不改变数据元素之间结构关系的运算
15、是( )A插入 B删除C排序 D定位53若进栈序列为 1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )A3,2,6,1,4,5 B3,4,2,1,6,5C1,2,5,3,4,6 D5,6,4,2,3,154二维数组 A89按行优先顺序存储,若数组元素 A23的存储地址为 1087,A47的存储地址为 1153,则数组元素 A67的存储地址为( )A1207 B1209C1211 D121355. 算法指的是( )A计算机程序 B计算方法C排序算法 D解决问题的有限运算序列56. 在一个单链表中,若 q 所指结点是 p 所指结点的前驱结点,若在 q 与 p 之间插入
16、一个 s所指的结点,则执行( )。A slink=plink; plink=s; B plink=s; slink=q;C plink=slink; slink=p; D q link=s; slink =p;57. 栈的插入和删除操作在( )进行。A 栈顶 B 栈底 C 任意位置 D 指定位置58. 将 10 阶对称矩阵压缩存储到一维数组 A 中,则数组 A 的长度最少为( ) 。A. 100 B. 40 C. 55 D. 8059. 将含 100 个结点的完全二叉树从根这一层开始,每层从左至右依次对结点编号,根结 点的编号为 1。编号为 47 的结点 X 的双亲的编号为( )A.24 B.
17、25 C.23 D.2 无法确定60.在含 n 个顶点和 e 条边的无向图的邻接矩阵中,零元素的个数为( )Ae B2e Cn 2e Dn 22e61.折半查找要求被查找的表是( )A.键值有序的链接表 B.链接表但键值不一定有序表C.键值有序的顺序表 D.顺序表但键值不一定有序表62.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字 5 为基准进行一趟快速排序的结果为( ) 。A. 2,3,5,8,6 B. 3,2,5,8,6C. 3,2,5,6,8 D. 2,3,6,5,863.线性表采用链式存储时,结点的存储地址( )A必须是不连续的 B连续与否均可C必须是连续的 D和
18、头结点的存储地址相连续64.设有一个无向图 G=(V,E)和 G=(V,E),如果 G为 G 的生成树,下面不正确的说法是( )A. G为 G 的子图 B. G为 G 的一个无环子图C. G为 G 的极小连通子图且 V=V D. G为 G 的连通分量65在按层次遍历二叉树的算法中,需要借助的辅助数据结构是( )A队列 B栈C线性表 D有序表66在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系( )A不一定相同 B都相同C都不相同 D互为逆序67若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的( )A层次遍历算法 B前序遍历算法C中序遍历算法 D后序遍历算法68若
19、用邻接矩阵表示一个有向图,则其中每一列包含的1的个数为( )A图中每个顶点的入度 B图中每个顶点的出度C图中弧的条数 D图中连通分量的数目69图的邻接矩阵表示法适用于表示( )A无向图 B有向图C稠密图 D稀疏图70在对 n 个关键字进行直接选择排序的过程中,每一趟都要从无序区选出最小关键字元素,则在进行第 i 趟排序之前,无序区中关键字元素的个数为( )Ai Bi+1Cn-i Dn-i+113.在 n(n0)个元素的顺序栈中删除 1 个元素的时间复杂度为( )AA.O(1) B.O( n)CO(nlog2n) DO(n)71若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t) ,
20、则在二分查找关键字 b 的过程中,先后进行比较的关键字依次为( )Af,c,b Bf,d,bCg,c,b Dg,d,b72以下数据结构中哪一个是非线性结构?( )A. 队列 B. 栈 C. 线性表 D. 二叉树73若某线性表的常用操作是取第 i 个元素及其前趋元素,则采用( )存储方式最节省时间A.顺序表 B.单链表C.双链表 D.单向循环74设数组 Data0m作为循环队列 SQ 的存储空间,front 为队头指针,rear 为队尾指针,则执行出队操作的语句为( )A.front=(front+1)%(m+1) B.front=(front+1)% m C.rear=(rear+1)% m
21、D. front=front+175.设有一个二维数组 Amn,假设 A00存放位置在 644(10), A22存放位置在676(10),每个元素占一个空间,问 A33(10)存放在什么位置?脚注 (10)表示用 10 进制表示。A688 B678 C692 D69676.深度为 6(根的层次为 1)的二叉树至多有( )结点A.64 B.63 C.31 D.32 77.设某完全无向图中有 n 个顶点,则该完全无向图中有( )条边。A. n(n-1)/2 B. n(n-1) C. n2 D. n2-178 若有 18 个元素的有序表存放在一维数组 A19中,第一个元素放 A1中,现进行折半查找,
22、则查找 A3的比较序列的下标依次为( )A. 1,2,3 B. 9,5,2,3C. 9,5,3 D. 9,4,2,379.适于对动态查找表进行高效率查找的组织结构是( )A有序表 B分块有序表 C二叉排序树 D线性链表80. 下面关于线性表的叙述错误的是( ) 。A. 线性表采用顺序存储必须占用一片连续的存储空间B. 线性表采用链式存储不必占用一片连续的存储空间C. 线性表采用链式存储便于插入和删除操作的实现D. 线性表采用顺序存储便于插入和删除操作的实现81. 设数组 datam作为循环队列 SQ 的存储空间,front 为队头指针,rear 为队尾指针,则执行出队操作后其头指针 front
23、 值为( )Afront=front+1 Bfront=(front+1)%mCfront=(front-1)%m Dfront=(front+1)%(m-1)82. 将 10 阶对称矩阵压缩存储到一维数组 A 中,则数组 A 的长度最少为( ) 。A. 100 B. 40 C. 55 D. 8082. 设某棵二叉树中有 2000 个结点,则该二叉树的最小高度为( ) 。A. 9 B. 10 C. 11 D. 1284.设有 6 个结点的无向图,该图至少应有( )条边才能确保是一个连通图。A.5 B.6 C.7 D.885.在一个长度为 n 的顺序线性表中顺序查找值为 x 的元素时,查找成功时
24、的平均查找长度(即 x 与元素的平均比较次数,假定查找每个元素的概率都相等)为 ( )。A. n B. n/2 C. (n+1)/2 D. (n-1)/286.设指针变量 p 指向单链表结点 A,则删除结点 A 的后继结点 B 需要的操作为( ) 。A. p-next=p-next-next B. p=p-nextC. p=p-next-next D. p-next=p87.设有一个二维数组 Amn,假设 A00存放位置在 644(10),A22 存放位置在 676(10),每个元素占一个空间,问 A33(10)存放在什么位置?脚注 (10)表示用 10 进制表示。A688 B678 C692
25、 D69688.树最适合用来表示( )。A.有序数据元素 B.无序数据元素C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据89.二叉树的第 k 层的结点数最多为( ).A2 k-1 B.2K+1 C.2K-1 D. 2 k-190.设有 6 个结点的无向图,该图至少应有( )条边才能确保是一个连通图。A.5 B.6 C.7 D.891. 将 10 阶对称矩阵压缩存储到一维数组 A 中,则数组 A 的长度最少为( ) 。A. 100 B. 40 C. 55 D. 8092. 若某二叉树结点的中序遍历序列为 A、B、C、D、E、F、G,后序遍历序列为B、D、C、A、F、G、E。该二叉树
26、有( )个叶子。A.3 B.2 C.5 D.493.在含 n 个顶点和 e 条边的无向图的邻接矩阵中,零元素的个数为( )Ae B2e Cn 2e Dn 22e94.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) 。A (100,80,90,60,120,110,130) B (100,120,110,130,80,60,90)C (100,60,80,90,120,110,130) D (100,80,60,90,120,130,110)95. 设某棵二叉树中有 2000 个结点,则该二叉树的最小高度为( ) 。A. 9 B. 10 C. 11 D. 1296.在一
27、个长度为 n 的顺序线性表中顺序查找值为 x 的元素时,查找成功时的平均查找长度(即 x 与元素的平均比较次数,假定查找每个元素的概率都相等)为 ( )。A. n B. n/2 C. (n+1)/2 D. (n-1)/2二、简答题1已知一个中缀算术表达式为: 3+4*(25-(6/15)-8 ,写出对应的后缀算术表达式。2对以下图,试给出一种拓扑序列。3.空堆开始依次向堆中插入线性表(64,52, 12,48,45,26)中的每个元素,请以线性表的形式给出每插入一个元素后堆的状态。(为小根堆)在一份电文中共使用五种字符:A,G,F,U,Y,Z,它们的出现频率依次为12,9,18,7,14,11
28、,求出每个字符的哈夫曼编码。5.试为下列情况选择合适的排序算法:(1)n=30,且要求最坏情况下速度最快;(2)n=30,且要求既要快,又要排序稳定;(3)n=2000,要求平均情况下速度最快;(4)n=2000,要求最坏情况下速度最快,又要节省存储空间。02531469876对于下图,若按照克鲁斯卡尔算法产生最小生成树,写出得到的各条边的次序。7有七个带权结点,其权值分别为 3,7,8,2,6,10,14,试以它们为叶子结点构造一棵哈夫曼树,并计算出带权路径长度 WPL。8。已知一组记录的排序码为(46,79,56,38,40,80, 95,24) ,写出对其进行快速排序的每一次划分结果。9
29、已知一个中缀算术表达式为: 25-(6/15)+(15/8 ) ,写出对应的后缀算术表达式。11一个线性表为 B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT012,散列函数为 H(key)= key % 13 并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。12.试述线性表顺序存储和链式存储的各自的有缺点。顺序存储:优点:无须为表示结点间的逻辑关系而增加额外的存储空间;可以方便的随机存取表中的任一结点. 缺点:插入和删除运算不方便,需移动大量元素;由于要求占用连续的存储空间,存储分配只能按最大存储空间预先进行,致使存储空间不能
30、得到充分利用;表的容量难以扩充.链表存储:优点:插入删除操作可通过修改结点的指针实现,无须移动元素;方便扩充存储空间;缺点:不能随机存取元素;16. 假设有一个适当大小的栈 S,输入栈的序列为 A,B ,C,D,E。问:(1)能否得到下列的输出序列: B,C,D,E,A; E,A,B,C,D;E,D,C,B,A。(2)写出所有可能正确的输出序列(至少 5 种) 。17.用向量表示的循环队列的队首和队尾位置分别为 1 和 max_size,试给出判断队列为空和为满的边界条件。 参考答案:队空条件为 max_size=1;0 25314 6758 251915 34 1333910311423队满
31、的条件为(max_size+1)%MAXSIZE.18. 设一棵二叉树后序遍历序列为 DGJHEBIFCA,中序遍历序列为 DBGEHJACIF,要求:(1)画出该二叉树;(2)写出该二叉树的先序遍历序列;(3)画出该二叉树对应的森林。19.对二叉树中的结点按层次顺序(每一层自左向右)进行的访问操作称为二叉树的层次遍历。现已知一棵二叉树的层次序列为 AEBGFDIMH,中序遍历序列为 GEFAMDBHI。请画出该二叉树并写出其先序序列。若将该二叉树看作是一个森林的孩子 兄弟表示,请画出该森林。20. 已知某通信电文仅由 A、B、C 、D 、E、F 这 6 个字符构成,其出现的频率分别为23、5
32、、14、8、25、7,请给出它们的霍夫曼树及其对应的霍夫曼编码。22.总结直接插入排序、折半插入排序、希尔排序、起泡排序、快速排序、简单选择排序、堆排序及归并排序等在最好情况下、最坏情况及平均的时间复杂度,辅助空间复杂度及稳定性。23.判断下面的每个结点序列是否表示一个堆,如果不是堆,请把它调整为堆。(1)100,90,80,60,85,75,20,25,10,70,65,50(2)100,70,50,20,90,75,60,25,10,85,65,8024.已知一序列(12,70,33,65,24,56,48,92,86,33) ,问该序列是否是堆?如果不是,则把它调整为小顶堆。并问把该序列
33、调整为堆共需要多少次元素间的比较?多少次元素间的交换。 (25.已一个图的顶点集 V 和边集 E 分别为:V=1,2,3,4,5,6,7;E=(1,2)3,(1,3)5,(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;用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。26假定一个待散列存储的线性表为 (37,65,25,73,42,91,45,36,18,75), 散列地址空间为HT12,若采用除留余数法构造散列函数和链接法处理冲突,试求出每一元素的散列地址,画出最后得到
34、的散列表,求出平均查找长度。27. 有一棵二叉树如下图所示,分别指出其前序、中序遍历的结点序列。ABHGFEDCI J28. 有二叉树先序序列为:ABCDEF,中序序列为:CBAEDF,试画出该二叉树。29. 给定表(40,36,56,6,64,73,8,23) ,按数据元素在表中的次序构造一棵二叉查找树,并求其平均查找长度。30.一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第 4 趟简单选择排序和第 4 趟直接插入排序后的结果。31. 试分别画出具有 3 个结点的树和有具有 3 个结点的二叉树的所有不同形态。32. 分别用普里姆算法(Prim)和克鲁斯卡尔(kr
35、uskal)算法求出下图的最小生成树(要求写出步骤)。33.根据下图给出的二叉树,求出先序、中序和后序遍历的结点序列。34. 已知数据序列为 12,5,9,20,6,31,24,对该数据序列进行排序,试写出冒泡排序每趟的结果。 35已知一棵二叉树的中序和前序序列如下,求该二叉树的后序序列。中序序列:c,b,d,e,a,g,i,h,j,f前序序列:a,b,c,d,e,f,g,h,i,j36.给定二叉树的中序遍历结果为 abc,请画出能得到此中序遍历结果的二叉树的所有形态。37.请画出下面无向图的邻接矩阵和邻接表。38.已知序列15,18,60,41,6,32,83,75,95。请给出采用快速排序
36、法对该序列作升序排序时的每一趟的结果。39.已知线性表的关键字集合87, 25, 310, 08, 27, 132, 68, 95, 187, 123, 70, 63, 47,已知散列函数为 H(k)=k MOD 13,采用拉链法处理冲突,设计出该开散列表的结构。acedfb40.给定下列图 G,分别给出该图的邻接矩阵和邻接表;分别用卡鲁斯卡尔及普里姆算法给出该图的最小生成树(要求给出步骤) 。A BGFE DC4 812242012151041. 把下图中的二叉树转化为森林。42对下图所示有向图,列出 6 种可能的拓扑有序序列。 (6 分) 。ACDBEF43.某二叉树的结点采用顺序存储表示
37、如下: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19E A F D H C G I B(1) 试画出此二叉树的图形表示。 (3 分)(2) 写出结点 D 的双亲结点及左、右子女。 (3 分)(3)写出该二叉树的先序遍历序列(2 分)44void EE (LNode * HL,const ElemType newptr-data=item;LNode *p=HL;while ( p-next!=HL )p=p-next;newptr-next=HL;p-next=newptr;对于结点类型为 LNode 的单链表,以上算法的功能为:45voi
38、d II( LNode * HL=NULL;while (p!=NULL)LNode *q=p;p=p-next;q-next=HL;HL=q;对于结点类型为 Lnode 的单链表,以上算法的功能为:46void LL(GLNode *GL)int max=0;while (GL!=NULL)if (GL-tag= =true)int dep=LL(GL-sublist);if (depmax) max=dep;GL=GL-next;return max+1;以上算法的功能为:47 void CC( Stack Push(S,50);Push(S,45);Peek(S);假定调用算法时栈 S
39、中已有 2 个元素(23,16)的栈,其中 23 时栈底,调用后得到的栈内容为(从栈底开始排列):48写出以下函数的功能。bool AA(BtreeNode * BST,ElemType else if (item= =BSTdata) item =BSTdta;return true;else if (item data= =x) n+;p=p-next;return n;对于结点类型为 LNode 的单链表,以上算法的功能为:50int BB(ElemType A, int n, KeyType K)for (int i=0;i=i;j_)if (Aj.stn=J;K=J(J-1)/2 +
40、I I=nlogn)32. 写算法求无向图中结点的度;有向图中结点的入度和出度。33. 图的数组表示法、邻接表存贮结构各自的优缺点,适应的运算。图的数组表示法(邻接矩阵表示法):二维数组存储图优点:容易求各个顶点的度缺点:当图为稀疏图时浪费空间邻接表表示法:优点:容易找到第一个邻接点和下一个邻接点,缺点:不方便找一个结点的出度34. 最小生成树的实际应用背景。公路, 铁路,通讯网等等35. 什么图适合用 Prim 算法求最小生成树,什么图适合用 Kruskal 算法求最小生成树。Prim 算法稠密的网最小生成树 kruskal 适合求稀疏的网的最小生成树36. 图示用 Prim 算法及 Kru
41、skal 算法求最小生成树的过程.。37. 举例简述“拓扑排序“所解决的实际问题。流程图,施工流程图,课程决定的优先权38. 请图示“拓扑排序“的过程。39. 举例简述“关键路径“所解决的实际问题。一个工程的并行的进行过程40. 顺序查找、折半查找、分块查找算法适合的关键字结构。41. 怎样从二叉排序树得到有序表。中序遍历42. 已知长度为 n 的表按表中元素顺序构造二叉平衡树,图示构造过程。43. 各种查找算法的平均时间复杂度。44. 为一组关键字构造哈希函数并建立哈希表。45. 指出希尔排序,归并排序,快速排序,堆排序,基数排序中稳定的排序方法,并对不稳定的举出反例。不稳定的是三中:快速,
42、堆,希尔排序46. 堆排序算法选用什么样的存贮结构,按此算法得到的有序表是递增还是递减的。一唯数组存储,是递减的47. 藉助于“比较“进行排序的算法能达到的最好的时间复杂度是什么?N*logn48. 指出归并排序,快速排序,堆排序,基数排序算法各适合的关键字结构。归并:快速:混乱的情况堆:非常多的情况基数;多关键字排序49. 指出各种排序算法的平均时间复杂度、最坏情况的时间复杂度。排序方法 平均时间 最坏情况 辅助存储简单排序 n*n n*n 1快速排序 n*logn n*n logn堆排序 n*logn n*logn 1归并排序 n*logn n*logn n基数排序 n+rd n+rd rd