数据结构复习题及答案

合集下载

数据结构期末考试复习题及参考答案

数据结构期末考试复习题及参考答案

第1章绪论1. 填空(1)()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

【解答】数据元素(2)()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。

【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。

(3)从逻辑关系上讲,数据结构主要分为()、()、()和()。

【解答】集合,线性结构,树结构,图结构(4)数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系(5)算法具有五个特性,分别是()、()、()、()、()。

【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性(6)在一般情况下,一个算法的时间复杂度是()的函数。

【解答】问题规模(7)设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。

【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。

则表示该遗产继承关系的最合适的数据结构应该是()。

A 树B 图C 线性表D 集合【解答】B【分析】将丈夫、妻子和子女分别作为数据元素,根据题意画出逻辑结构图。

⑶算法指的是()。

数据结构复习习题和答案(DOC)

数据结构复习习题和答案(DOC)

第一章绪论一、单项选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和操作等的学科。

① A.操作对象 B.计算方法 C·逻辑存储 D.数据映象② A.结构 B.关系 C.运算. D.算法2.数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。

① A.算法 B.数据元素 C.数据操作 D.逻辑结构② A.操作 B.映象 C、存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构4·算法分析的目的是①,算法分析的两个主要方面是②。

① A. 找出数据结构的合理性 B.研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性5.计算机算法指的是①,它必具备输入、输出和②等五个特性。

① A. 计算方法 B.排序方法 C. 解决问题的有限运算序列 D.调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D.易读性、稳定性和安全性6. 线性表的逻辑顺序与存储顺序总是一致的,这种说法()。

A. 正确 B.不正确7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。

A. 必须是连续的 B.部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以8.数据结构通常是研究数据的()及它们之间的相互联系。

A.存储和逻辑结构 B.存储和抽象C.理想与抽象 D.理想与逻辑9.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()。

A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构11.非线性结构是数据元素之间存在一种()。

数据结构复习题及答案5篇

数据结构复习题及答案5篇

数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。

()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。

()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。

()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。

()5.如果两个串含有相同的字符,则这两个串相等。

()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。

()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。

()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。

()9.一个广义表的表尾总是一个广义表。

()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。

()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。

()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。

()13.直接选择排序是一种稳定的排序方法。

()14.闭散列法通常比开散列法时间效率更高。

()15.有n个结点的不同的二叉树有n!棵。

()16.直接选择排序是一种不稳定的排序方法。

()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。

()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。

()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。

()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。

《数据结构》期末考试复习题及参考答案

《数据结构》期末考试复习题及参考答案

数据结构复习题(课程代码 252259)一、填空题(本大题共40小题)1.队列中是按照______先进先出______的原则进行数据元素的增删。

2.___栈__又称为LIFO表。

3.在顺序存储的完全二叉树中,若编号为i的结点有左孩子结点,则其右孩子结点的编号为___2i+1___。

4.存储地址与关键字之间存在某种映射关系的存储结构为_______散列存储结构_______。

5.在串S=“structure”中,以r为首字符的子串有_9_个。

6.设有整型二维数组M[4][3],每个元素(整数)占2个存储单元,元素按行的顺序存储,数组的起始地址为200,元素M[1][1]的地址是___208____。

7.在一个具有n个顶点的无向完全图中,包含有___ n(n-1)/2_____条边,在一个具有n个顶点的有向完全图中,包含有__ n(n-1)______条边。

8.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_____(12,40)()(74)(23,55,63)____。

9.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度____增加1______。

10.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为__ O(log2n)______,整个堆排序过程的时间复杂度为__ O(nlog2n)______。

11.在快速排序、堆排序、归并排序中,____归并_____排序是稳定的。

12.一棵深度为5的满二叉树中的结点数为_______31_______个。

13.在含n个顶点和e条边的无向图的邻接矩阵中,非零元素的个数为__2e __。

14.从一棵二叉排序树中查找一个元素时,若元素的值大于根结点的值,则继续向____右子树____查找。

15._____拓朴排序______可以判断出一个有向图中是否有环。

(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)⼀、算法设计题(每题15分,共60分)答题要求:①⽤⾃然语⾔说明所采⽤算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③写出对应的算法程序,并做必要的注释。

1、有⼀个带头结点的单链表,每个结点包括两个域,⼀个是整型域info,另⼀个是指向下⼀个结点的指针域next。

假设单链表已建⽴,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留⼀个。

3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个⼈按顺时针⽅向围坐成⼀圈,现从第s个⼈开始按顺时针⽅向报数,数到第m个⼈出列,然后从出列的下⼀个⼈重新开始报数,数到第m的⼈⼜出列,…,如此重复直到所有的⼈全部出列为⽌。

现要求采⽤循环链表结构设计⼀个算法,模拟此过程。

4、编程实现单链表的就地逆置。

23.在数组 A[1..n]中有n个数据,试建⽴⼀个带有头结点的循环链表,头指针为h,要求链中数据从⼩到⼤排列,重复的数据在链中只保存⼀个.5、设计⼀个尽可能的⾼效算法输出单链表的倒数第K个元素。

3、假设以I和O分别表⽰⼊栈和出栈操作。

栈的初态和终态均为空,⼊栈和出栈的操作序列可表⽰为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为⾮法序列。

(15分)(1)下⾯所⽰的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出⼀个算法,判定所给的操作序列是否合法。

若合法,返回true,否则返回false(假定被判定的操作序列已存⼊⼀维数组中)。

5、设从键盘输⼊⼀整数的序列:a1, a2, a3,…,an,试编写算法实现:⽤栈结构存储输⼊的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。

算法应对异常情况(⼊栈满等)给出相应的信息。

设有⼀个背包可以放⼊的物品重量为S,现有n件物品,重量分别为W1,W2,...,W n。

数据结构复习题(附答案)

数据结构复习题(附答案)

数据结构复习题(附答案)1. 快速排序在最坏情况下的时间复杂度为( D )。

A.O(log2n) B.O(nlog2n) C.O (n) D. O (n2)2.设⼀棵⼆叉树的深度为k,则该⼆叉树中最多有( D )个结点。

A. 2k-1B. 2kC.2k-1D. 2k-13.⼆叉树中第i(i≥1)层上的结点数最多有( C )个。

A. 2iB. 2iC. 2i-1D. 2i-1 4.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为( A )。

A. p->next=p->next->nextB. p=p->nextC. p=p->next->nextD. p->next=p5.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,⼀个元素出栈后即进⼊队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量⾄少应该是( C )。

A. 6B. 4C. 3D. 26.设有以下四种排序⽅法,则( B )的空间复杂度最⼤。

A. 冒泡排序B. 快速排C. 堆排序D. 希尔排序7.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。

A. 3B. 4C. 5D. 18.根据⼆叉树的定义可知⼆叉树共有( B )种不同的形态。

A. 4B. 5C. 6D. 79.对⼀个算法的评价,不包括如下( A )⽅⾯的内容。

A.并⾏性 B.健壮性和可读性 C.正确性 D.时空复杂度10.在⼆叉排序树中插⼊⼀个结点的时间复杂度为( C )。

A.O(1) B.O(n) C.O(log2n) D.O(n2)11. 队列是⼀种( B )的线性表。

A.先进后出B.先进先出 C.只能插⼊D.只能删除12.采⽤开放定址法处理散列表的冲突时,其平均查找长度( C )。

A.低于链接法处理冲突 B. 与链接法处理冲突相同C.⾼于链接法处理冲突 D.⾼于⼆分查找13.设有序顺序表中有n个数据元素,则利⽤⼆分查找法查找数据元素X的最多⽐较次数不超过( A )。

数据结构(java)复习题及答案

数据结构(java)复习题及答案

数据结构(java)复习题及答案⼀、选择题1、数据结构在计算机内存中的表⽰是指____A__A.数据的存储结构 B.数据结构C. 数据的逻辑结构D.数据元素之间的关系2、若⼀个算法的时间复杂度⽤T(n)表⽰,其中n的含义是( A )A.问题规模 B.语句条数C.循环层数 D.函数数量3、下列选项中与数据存储结构⽆关的术语是( D )A.顺序表B.链表C.链队列D.栈4、已知循环队列的存储空间⼤⼩为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下⼀个位置,则向队列中插⼊新元素时,修改指针的操作是( D )A.rear=(rear-1)%m;B.front=(front+1)%m;C.front=(front-1)%m;D.rear=(rear+1)%m;5、栈和队列的共同点是__C______A.都是先进后出B.都是先进先出C.只允许在端点处插⼊和删除元素D.没有共同点6、已知⼀堆栈的进栈序列为1234,则下列哪个序列为不可能的出栈序列______D__A.1234B.4321C.2143D.41237、具有线性结构的数据结构是( C )A.树 B.图C.栈和队列 D.⼴义表8、假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为( B )A.3 B.37C.50 D.979、若栈采⽤链式存储结构,则下列说法中正确的是( B )A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空10、若⼀棵具有n(n>0)个结点的⼆叉树的先序序列与后序序列正好相反,则该⼆叉树⼀定是( C )A.结点均⽆左孩⼦的⼆叉树B.结点均⽆右孩⼦的⼆叉树C.⾼度为n的⼆叉树D.存在度为2的结点的⼆叉树11、若⼀棵⼆叉树中度为l的结点个数是3,度为2的结点个数是4,则该⼆叉树叶⼦结点的个数是( B )A.4B.5C.7D.812、在n个结点的线索⼆叉树中,线索的数⽬为_C_______A.n-1 B. nC.n+1D.2n13、⼀棵完全⼆叉树有1001个结点,其中有____B_____叶⼦结点A.500B.501C.503D.50515、⼀个有n个顶点的⽆向图最多有___C____条边。

数据结构复习题及参考答案

数据结构复习题及参考答案

《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较________次,至多需要比较__________次。

2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。

3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。

4.数据结构从逻辑上划分为三种基本类型:___________、__________和___________。

5.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。

6.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。

7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。

8.在快速排序、堆排序、归并排序中,_________排序是稳定的。

9.在有n个叶子结点的哈夫曼树中,总结点数是_______。

10.一棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定_______。

11.3.已知数组A[10][10]为对称矩阵,其中每个元素占5个单元。

现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址是_______。

12.在有n个结点的无向图中,其边数最多为_______。

13.取出广义表A=(x,(a,b,c,d))中原子x的函数是_______。

14.对矩阵采用压缩存储是为了___ ____。

15.带头结点的双循环链表L为空表的条件是_______。

16.设线性表中元素的类型是实型,其首地址为1024,则线性表中第6个元素的存储位置是。

17.对于顺序存储的栈,因为栈的空间是有限的,在进行运算时,可能发生栈的上溢,在进行运算时,可能发生栈的下溢。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复习题(一)一.填空题(每空1分,共15分)1.一个算法的效率可分为___________________效率和___________________效率。

2.__________________是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

3.设S=“A;/document/Mary.doc”,则strlen(S)= _______________,“/”的字符定位的位置为_______________。

4.设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为_______________。

5.一棵深度为6的满二叉树有_______________个分支结点和_______________个叶子。

6.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度是。

7.设有一稀疏图G,则G采用存储较省空间。

8.快速排序算法是对算法的一种改进。

9.在数据的存放无规律而言的线性表中进行检索的最佳方法是。

10.大多数排序算法都有两个基本的操作:和。

11.设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重新排列,则:快速排序一趟扫描的结果是。

二.选择题(每题2分,共30分)()1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:(A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构()2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 个元素(A )8 (B )63.5 (C )63 (D )7( )3. 链接存储的存储结构所占存储空间:(A ) 分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 (B ) 只有一部分,存放结点值(C ) 只有一部分,存储表示结点间关系的指针(D ) 分两部分,一部分存放结点值,另一部分存放结点所占单元数( )4. 设a 1、a 2、a 3为3个结点,整数P 0,3,4代表地址,则如下的链式存储结构称为P 0 3 4 P 0 →→→(A)循环链表 (B)单链表 (C)双向循环链表 (D)双向链表( )5.双向循环链表的每个结点中包括两个指针next 和previous ,分别指向该结点的后继和前驱结点。

现要删除指针p 所指向的结点,下面的操作序列中哪一个是正确的?(A )p -next-〉previous = p ->previous; p ->previous-〉next = p ->next ; (B )p ->next-〉previous = p ->next; p ->previous-〉next = p ->previous ; (C )p ->previous-〉next = p ->previous; p ->next-〉previous = p ->next ; (D )p ->priou-〉next-〉next = p -next; p ->next-〉previous = p ->previous ;( )6. 若已知一个栈的入栈序列是1,2,3,…,n ,其输出序列为p 1,p 2,p 3,…,p n ,若p 1=n ,则p i 为:(A)i (B)n =i (C)n -i +1 (D)不确定)7. 数组Q[n ]用来表示一个循环队列,f 为当前队列头元素的前一位置,r 为队尾元素的位置,假定队列中元素的个数小于n ,计算队列中元素的公式为:(A)r -f (B)(n +f -r )% n (C)n +r -f (D)(n +r-f )% n( )8. 设串s 1=’ABCDEFG’,s 2=’PQRST’,函数con(x ,y )返回x 和y 串的连接串,subs(s , i , j )返回串s 的从序号i 开始的j 个字符组成的子串,len(s )返回串s 的长度,则con(subs(s 1, 2, len(s 2)), subs(s 1, len(s 2), 2))的结果串是:(A)BCDEF (B)BCDEFG (C)BCPQRST (D)BCDEFEF( )9. 设矩阵A 是一个对称矩阵,为了节省存储,将其下三角部分(如右图所示)按行序存放在一维数组B[1, n(n-1)/2 ]中,对下三角部分中任一元素a i,j (i≤j ),在一维数组B 中下标k 的值是:(A)i(i-1)/2+j-1 (B)i(i-1)/2+j (C)i(i+1)/2+j-1 (D)i(i+1)/2+j( )10. 具有n(n>0)个结点的完全二叉树的深度为 。

(A) ⎡log 2(n)⎤ (B) ⎣ log 2(n)⎦ (C) ⎣ log 2(n) ⎦+1 (D) ⎡log 2(n)+1⎤⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=n n n n a a a a a a A ,2,1,2,21,21,1( )11. 深度优先遍历类似于二叉树的(A)先序遍历 (B )中序遍历 (C )后序遍历 (D )层次遍历 ( )12. 已知图的邻接矩阵如右图,根据算法,则从顶点0出发,按深度优先遍历的结点序列是:(A )0 2 4 3 1 5 6 (B )0 1 3 5 6 4 2 (C )0 4 2 3 1 6 5 (D )0 1 3 4 2 5 6( )13. 设哈希表长度为11,哈希函数为H (key )=key mod 11。

表中已有4个元素H (15)=4;H (38)=5;H (61)=6;H (84)=7其余地址为空,若用二次探测再散列处理冲突,关键字为49的元素的地址是__________。

(A )3(B )5 (C )8(D )9( )14. 任何一个无向连通图的最小生成树(A)只有一棵 (B )一棵或多棵 (C )一定有多棵 (D )可能不存在( )15. 下述几种排序方法中,要求内存最大的是(A)插入排序 (B )快速排序 (C )归并排序 (D )选择排序三. 判断题(每题2分,共20分)( )1. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

( )2. 链表的物理存储结构具有同链表一样的顺序。

( )3. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

( )4. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。

( )5. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

( )6. 栈和队列是一种非线性数据结构。

( )7. 二叉树中每个结点的两棵子树的高度差等于1。

( )8. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

( )9. 二叉树中所有结点个数是2k -1-1,其中k 是树的深度。

( )10. 用二叉链表法(link-rlink )存储包含n 个结点的二叉树,结点的2n 个指针区域中有n +1个为空指针。

四. 简答题(三题,共12分)1. 给定如图所示二叉树T ,请画出与其对应的中序线索二叉树。

(5解答:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡01000111011000010110101100110010001100100110111102. 假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:(7分)(1). 画出描述折半查找过程的判定树;(2). 若查找元素54,需依次与哪些元素比较?(3). 假定每个元素的查找概率相等,求查找成功时的平均查找长度。

解答:五. 算法理解题:(共13分)1. 设如下图所示的二叉树B 的存储结构为二叉链表,root 为根指针,结点结构为:(lchild,data,rchild)。

其中lchild ,rchild 分别为指向左右孩子的指针,data 为字符型,root 为根指针,对下列二叉树B ,执行下列算法traversal(root),试指出其输出结果(4分);二叉树B解答:2. 请对下图的无向带权图,写出它的邻接矩阵,并按普里姆算法求其最小生成树。

(9分)AB DC F G EC 的结点类型定义如下:struct node {char data;struct node *lchild, rchild; };C 算法如下:void traversal(struct node *root) {if (root){printf(“%c”, root ->data); traversal(root->lchild); printf(“%c”, root->data); traversal(root->rchild); } }六. 算法设计题(10分)编写按层次顺序(同一层自左至右)遍历二叉树的算法。

(10分) 解答:复习题(一)答案一、填空题(每空1分,共15分)1. 时间;空间2. 队列3. 20;34. 89505. 31;326. 337. 邻接表8. 起泡9. 顺序查找(线性查找) 10. 比较;移动11.F H C D P A M Q R S Y X二、 单项选择题(每空2分,共30分,多选漏选均不得分)1. C2. B3. A4.B5.A6. C7. D8. D9.B 10.C 11. A 12. D 13. A 14.A 15.C三、判断题(每题2分,共20分)1. ×2. ×3. ×4. ×5.√6. ×7. ×8. √9. × 10. √四、简答题(共12分,意思正确给分)1. 给定如图所示二叉树T ,请画出与其对应的中序线索二叉树。

(5分) 解答:要遵循中序遍历的轨迹来画出每个前驱和后继。

中序遍历序列:55 40 25 60 28 08 33 542833 3. 假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:(7分)(1) 画出描述折半查找过程的判定树;(3分)(2) 若查找元素54,需依次与哪些元素比较?(2分)(3) 假定每个元素的查找概率相等,求查找成功时的平均查找长度。

(2分)解答:(1) 先画出判定树如下(注:mid=⎣(1+12)/2⎦=6):305 633 7 42 874 24 54 72 95 (2) 查找元素54,需依次与30, 63, 42, 54 等元素比较;(3) 求ASL 之前,需要统计每个元素的查找次数。

相关文档
最新文档