数据结构期末复习题_第1页
数据结构期末复习题_第2页
数据结构期末复习题_第3页
数据结构期末复习题_第4页
数据结构期末复习题_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1习题绪论.1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间的和 运算等的学科。A.操作对象E.计算方法C.逻辑存储D.数据映象#A.结构E.关系C.运算D.算法2. 数据结构被形式地定义为(K , R),其中K是的有限集合,R是K上的有限集 合。 A 算法 A .操作E.数据元素E.映象C. 数据操作C.存储D. 逻辑结构D.关系#3. 在数据结构中,从逻辑上可以把数据结构分成。A .动态结构和静态结构E. 紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构#4. 线性表的顺序存储结构是一种的存储结构, 线性表的链式存储结构是一种的存储

2、 结构。A .随机存取B .顺序存取C .索引存取D .散列存取5. 算法分析的目的是,算法分析的两个主要方面是。 A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性 A.空间复杂性和时间复杂性B.正确性和简明性C. 可读性和文档性6计算机算法指的是,它必具备输入、 A. 计算方法C. 解决问题的有限运算序列 A. 可行性、可移植性和可扩充性C. 确定性、有穷性和稳定性D. 数据复杂性和程序复杂性 输出和等五个特性。B. 排序方法D. 调度方法B. 可行性、确定性和有穷性D. 易读性、稳定性和安全性7. 线性表的逻辑顺序与存储顺序总是

3、一致的,这种说法。A. 正确B. 不正确8. 线性表若米用链式存储结构时,要求内存中可用存储单兀的地址。A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以9. 在以下的叙述中,正确的是。A. 线性表的线性存储结构优于链表存储结构B. 二维数组是其数据元素为线性表的线性表C. 栈的操作方式是先进先出D. 队列的操作方式和先进后出10. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。A. 正确 B. 不正确1.2 填空题(将正确的答案填在相应的空中1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。2. 在线性结构中, 第一个结点前驱结

4、点, 其余每个结点有且只有个前驱结点; 最后 一个结点后续结点,其余每个结点有且只有个后续结点。3. 在树形结构中, 树根结点没有结点, 其余每个结点有且只有个前驱结点, 叶子结 点没有结点,其余每个结点的后续结点可以。4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。5. 线性结构中元素之间存在关系, 树形结构中元素之间存在关系, 图形结构中元素 之间存在关系。6. 算法的五个重要特性是 。7. 下面程序段的时间复杂度是。for (i=0;i<n;i+)for (j=0;j<m;j+)Aij=0;8. 下面程序段的时间复杂度是。i=s=0;while (s<n) i

5、+; /*i=i+1*/s+=i; /*s=s+1*/9. 下面程序段的时间复杂度是。s=0;for (i=0;i<n;i+)for (j=0;j<n;j+)s+=Bij;sum=s;10. 下面程序段的时间复杂度是。i=1;while (i<=n)i=i*3;1.3 算法设计题 :1. 试写一算法,自大到小依次输出顺序读入的三个数X,Y和Z的值.习题答案1.1 1. AB 2. BD 3. C 4. AB 5. CA 6. CB 7. B 8. D9. B 10. B1.2 1. 线性结构、树形结构、图形结构、非线性结构2. 没有、1、没有、13. 前驱、1、后续、任意多个

6、4. 任意多个5. 一对一、一对多、多对多6. 有穷性、确定性、可行性、输入、输出7. O ( m*n)128. O (n )29. O (n )10. Iog3n习题二顺序表示(线性表、栈和队列)2.1单项选择题1. 一个向量第一个元素的存储地址是100,每个元素的长度为 2,则第5个元素的地址3#A. 110B. 108 C. 100 D. 1202. 一个栈的入栈序列 a,b,c,d,e,则栈的不可能的输出序列是 。A. edcba B. decba C. dceab D. abcde3. 若已知一个栈的入栈序列是1,2,3,n,其输出序列为p1,p2,p3,pn,若p1=n,则pi为。

7、A. iB. n=iC. n-i+1D.不确定4. 栈结构通常采用的两种存储结构是 。A. 顺序存储结构和链式存储结构B. 散列方式和索引方式C. 链表存储结构和数组D. 线性存储结构和非线性存储结构5.判定一个栈ST (最多元糸为m0)为空的条件是。A.ST > top !=0B. ST > top= =0C.ST > top !=m0D. ST > top= =m06.判定一个栈ST (最多兀素为m0 )为栈满的条件是A.ST > top !=0B. ST > top= =0C.ST > top !=m0D. ST > top= =m07.栈

8、的特点是,队列的特点是。A.先进先出B.先进后8. 一个队列的入列序列是A. 4,3,2,1C. 1,4,3,29. 判定一个队列QU1,2,3,4,则队列的输出序列是B. 1,2,3,4D. 3,2,4,1(最多元素为 m0)为空的条件是 A.QU>rearQU>front= =m0B.QU>rearQU>front-1= =m0C.QU>front= =QU >rearD.QU>front= =QU >rear+110.判定一个队列 QU(最多元素为 m0, m0+1= =Maxsize )为满队列的条件A.(QU >rear-QU &

9、gt;front)+ Maxsize)% Maxsize = =m0B.QU>rearQU>front-1= =m0C.QU>front= =QU>rearD.QU>front= =QU>rear+111.判定一个循环队列QU (最多元素为 m0)为空的条件是 。A.QU>front= =QU>rearB.QU>front !=QU >rearC.QU>front= = ( QU >rear+1 ) %m0D.QU>front !=(QU >rear+1 ) %m012.判定一个循环队列QU (最多元素为 m0

10、)为满队列的条件是 。A.QU>front= =QU>rearB.QU>front !=QU >rearC.QU>front= = ( QU >rear+1 ) %m0D.QU>front !=(QU >rear+1 ) %m013. 循环队列用数组 A0 , m-1存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是 。A. (rear-front+m)%mB. rear-front+1C. rear-front-1D. rear-front14. 栈和队列的共同点是 。A. 都是先进后出B. 都是先进先出C. 只允

11、许在端点处插入和删除元素D. 没有共同点2.2 填空题(将正确的答案填在相应的空中)1. 向量、 栈和队列都是 结构, 可以在向量的 位置插入和删除元素; 对于栈只能在 插入和删除元素;对于队列只能在 插入元素和 删除元素。2. 向一个长度为n的向量的第i个元素(K i < n+1)之前插入一个元素时,需向后移动 个元素。3. 向一个长度为n的向量中删除第i个元素(1 < iw n)时,需向前移动 个元素。4. 向栈中压入元素的操作是 。5. 对栈进行退栈时的操作是 。6. 在一个循环队列中,队首指针指向队首元素的 。7. 从循环队列中删除一个元素时,其操作是 。8. 在具有 n

12、个单元的循环队列中,队满时共有 个元素。9. 一个栈的输入序列是12345,则栈的输出序列43512 是 。10. 一个栈的输入序列是12345,则栈的输出序列12345 是 。2.3 算法设计题 :设顺序表 va 中的数据元数递增有序。试写一算法,将 x 插入到顺序表的适当位置上,以 保持该表的有序性。试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(ai, a2,.an)逆置.为(a n, a n-i,.,a i)。3.2 节例 3按照四则运算加、减、乘、除和幕运算(f)优先关系的惯例,并仿照教科书i 的格式,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:A-B*C

13、/D+E f F习题答案2.1 i. B 2. C 3. C 4. A 5. Bi0.A ii. A i2. C i3. A2.2 i. 线性、任何、栈顶、队尾、队首4. 先移动栈顶指针,后存入元素6. 前一个位置8. n-i9. 不可能的习 题 三 链表(线性表、栈和队列)3.1 单项选择题6. D 7. BA 8. B 9. Ci4. C2. n-i+i 3. n-i5. 先取出元素,后移动栈顶指针7. 先移动队首元素,后取出元素i0. 可能的1. 不带头结点的单链表head为空的判定条件是_。A. head= =NULLB. headnext= =NULLC. headnext= =he

14、adD. head!=NULL2. 带头结点的单链表 head为空的判定条件是。A. head= =NULLB. head next= =NULLC. head next= =headD. head!=NULL3. 非空的循环单链表 head的尾结点(由p所指向)满足 。A. p next= =NULLB. p= =NULLC. p next= =headD. p= =head4. 在循环双链表的p所指结点之后插入s所指结点的操作是。A. p right=s; s left=p; p right left=s; s right=pright;B. p right=s; pright left=

15、s; s left=p; s right=pright;C. s left=p; s right=p right; p right=s; p right left=s;D. s left=p; s right=p right; p right left=s; p right=s;5. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行 。A. s next=p next; p next=s;B. p next=s next; s next=p;C. q next=s; s next=p;D. p> next=s; s > next=q;6. 在一

16、个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行_A. s> next=p; p > next=s;B. s> next=p > next; p> next=s;C. s> next=p > next; p=s;D. p> next=s; s> next=p;7. 在一个单链表中,若删除p所指结点的后续结点,则执行_。A. p> next= p > next> next;B. p= p> next; p> next= p> next> next;C. p> next= p

17、> next;D. p= p> next> next;9从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较 个结点。A. nB. n/2C. (n-1)/2D. (n+1)/210. 在一个具有 n 个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是。2A. O(1)B.O(n)C. O (n2)D.O (nlog2n)11. 给定有 n 个元素的向量,建立一个有序单链表的时间复杂度是 。A. O(1)B.O(n)C. O (n2)D.O (nlog2n)12向一个栈顶指针为 HS的链栈中插入一个s所指结点时,则执行 。(不带空的头结点

18、)A. HS> next=s;B. s> next= HS> next; HS> next=s;C. s> next= HS; HS=s;D. s> next= HS; HS= HS > next;13.从一个栈顶指针为 HS的链栈中删除一个结点时,用x保存被删结点的值,则执行_ (不带空的头结点 )A. x=HS; HS= HS > next;B. x=HS > data;C. HS= HS > next; x=HS > data;D. x=HS > data; HS= HS> next;3.2 填空题(将正确的答

19、案填在相应的空中)1. 单链表是 的链接存储表示。2. 可以使用 表示树形结构。3. 在双链表中,每个结点有两个指针域,一个指向 ,另一个指向 。4. 在一个单链表中的p所指结点之前插入一个s所指结点时,可执行如下操作: s> next=; p> next=s; t=p > data; p> data=; s> data=;5. 在一个单链表中删除 p 所指结点时,应执行以下操作:q= p > next;p> data= p> next > data;p> next=;free(q);6. 带有一个头结点的单链表 head 为空的条件

20、是 。7. 在一个单链表中 p 所指结点之后插入一个 s 所指结点时,应执行 s> next= 和 p> next= 的操作。8. 非空的循环单链表 head 的尾结点(由 p 所指向),满足条件 。9. 在栈顶指针为 HS 的链栈中,判定栈空的条件是 。10. 对于一个具有 n 个结点的单链表,在已知 p 所指结点后插入一个新结点的时间复杂度 是 ;在给定值为 x 的结点后插入一个新结点的时间复杂度是 。3.3 算法设计题 :1. 已知线性表中的元素以值递增有序排列, 并以单链表作存储结构。 试写一算法, 删除表 中所有大于 x 且小于 y 的元素(若表中存在这样的元素)同时释放

21、被删除结点空间。2. 试写一算法,实现单链表的就地逆置。 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头 指针),试编写相应的队列初始化、入队列和出队列的算法。习题答案3.1 1. A 2. B 3. C 4. D 5. C 6. B 7. A 9. D10. B 11.C 12. C 13.D3.2 1. 线性表 2. 双链表3. 前驱结点、后续结点4. p> next、 s> data、t5. p> next> next6. head> next= =NULL7. p> next、 s8. p> next= head

22、9. HS= =NULL11. O(1) 、O( n) 习 题 四 串4.1 单项选择题1. 空串与空格串是相同的,这种说法 。A. 正确 B. 不正确2. 串是一中特殊的线性表,其特殊性体现在 。A. 可以顺序存储B. 数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符3. 设有两个串p和q,求q在p中首次出现的位置的运算称作 。A. 连接 B. 模式匹配C. 求子串 D. 求串长4. 设串 s1= ' ABCDEFG s2=' PQRST 函数 con (x,y)返回 x 和 y 串的连接串,subs(s,i,j) 返回串s的从序号i的字符开始的j个字符组成的

23、子串,len(s)返回串s的长度,则con (subs (s1,2,len (s2), subs (s1,len (s2),2)的结果串是 。A. BCDEFB. BCDEFGC. BCPQRSTD. BCDEFEF4.2 填空题(将正确的答案填在相应的空中)1. 串的两种最基本的存储方式是 。2. 两个串相等的充分必要条件是 。3. 空串是 ,其长度等于 。4. 空格串是 ,其长度等于 。5. 设 s= 'IM A - TEACHER,其长度是。4.3 算法设计题 :1编写算法,从串 s 中删除所有和串 t 相同的子串。2. 编写算法,实现串的基本操作 Replace(&S,

24、T,V) 。习题答案4.1 1. B 2. B 3. B 4. D4.2 1. 顺序存储方式和链接存储方式2. 两个串的长度相等且对应位置的字符相同3. 零个字符的串、零4. 由一个或多个空格字符组成的串、其包含的空格个数5. 14习 题 五 数 组5.1 单项选择题(其中 Ai.j 表示下标从 i 到 j )1. 常对数组进行的两种基本操作是 。A. 建立与删除B. 索引和修改C. 查找和修改D. 查找与索引2. 二维数组 M 的成员是 6 个字符(每个字符占一个存储单元,即一个字节)组成的串,行下标 i 的范围从 0 到 8,列下标 j 的范围从 1 到 10,则存放 M 至少需要 _个字

25、节; M 的第 8列和第 5行共占_个字节。 A. 90B. 180C. 240D. 540 A. 108B. 114C. 54D. 604. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址 SA 开始连续存放在存储器内,存放该数组至少需要的单元数是 。A. 80B. 100C.240D. 2705. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址 SA 开始连续存放在存储器内, 该数组按行存放时, 元素 A85 的起始地址为 。A. SA+141B. SA+144C. SA+222D. SA+2256. 数组 A 中

26、,每个元素 A 的长度为 3 个字节,行下标 i 从 1 到 8,列下标 j 从 1 到 10,从 首地址 SA 开始连续存放在存储器内, 该数组按列存放时, 元素 A58 的起始地址为 。A. SA+141 B. SA+180 C. SA+222 D. SA+2255.2 填空题(将正确的答案填在相应的空中,其中 Ai,j 表示下标从 i 到 j )1. 已知二维数组 Amn 采用行序为主方式存储,每个元素占 k 个存储单元,并且第一个 元素的存储地址是 LOC(A00) ,则 Aij 的地址是 。2. 二维数组 A1020 采用列序为主方式存储,每个元素占一个存储单元并且 A00 的存 储

27、地址是 200,则 A612 的地址是 。3. 二维数组 A10.205.10 采用行序为主方式存储,每个元素占 4 个存储单元,并且 A105 的存储地址是 1000,则 A189 的地址是 。5.3 算法设计题 :1. 假设稀疏矩阵 A 和 B 均以三元组顺序表作为存储结构。试写出矩阵相加的算法,另设 三元组表C存放结果矩阵。2. 假设系数矩阵 A 和 B 均以三元组顺序表作为存储结构。试写出满足以下条件的矩阵相加的算法:假设三元组顺序表 A的空间足够大,将矩阵 B加到矩阵A上,不增加A, B之 外的附加空间,你的算法能否达到 O(m+n)的时间复杂度?其中 m和n分别为A, B矩阵 中非

28、零元的数目。3试编写一个以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法。 4求下列广义表操作的结果:( 1) GetTailGetHead(a,b),(c,d);( 2) GetTailGetHeadGetTail(a,b),(c,d)5. 利用广义表的 GetHead和GetTail操作写出如上题的函数表达式,把原子banana分别从下列广义表中分离出来 .(1) L 5=(apple),(pear),(banana),orange);(2) L 7 =(apple,(pear,(banana),orange);习题答案5.1 1. C 2. D,B 4. C 5. C 6

29、. B5.2 1. LOC (A00)+(n*i+j)*k2. 3263. 1208习 题 六 树 和 二 叉 树6.1 单项选择题(A)(B)(C)图8.7 4棵二叉树2.如图8.8所示的(A)(B)(C)图8.8 4棵二叉树3. 在线索化二叉树中,t所指结点没有左子树的充要条件是 。A. t > left=NULLB. t > ltag=1C. t > ltag=1 且 t> left=NULL D.以上都不对4. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法A.正确B.错误5. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,

30、这种说法A.正确B.错误6. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法 <A.正确B.错误7. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为。A. 2hB.2h-1 C. 2h+1 D. h+18. 如图8.9所示二叉树的中序遍历序列是 。A. abcdgef B. dfebagc C. dbaefcgD. defbagc9. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是。A. acbed B. decab C. deabc D.cedba10. 设a,b为一棵二叉树上的两个结点,在中

31、序遍历时,a在b前的条件是 。A . a在b的右方B. a在b的左方C. a是b的祖先D. a是b的子孙11. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为个。A . 15B. 16C. 17D. 4712. 某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是 。A. bdgcefhaB. gdbecfha C. bdgaechf D. gdbehfca13. 二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法 。A.正确B.错误14. 按照二叉树的

32、定义,具有3个结点的二叉树有 种。A. 3B. 4C. 5D. 615. 一棵二叉树如图8.10所示,其中序遍历的序列为 。A.abdgcefh B.dgbaechfD. abcdefghC. gdbehfca图8.10 棵二叉树16. 树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍 历、中序遍历和后序遍历。 这里,我们把由树转化得到的二叉树叫做这棵数对应的二叉树。 结论 是正确的。A. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同B. 树的后根遍历序列与其对应的二叉树的后序遍历序列相同C. 树的先根遍历序列与其对应的二叉树的中序遍历序列相同D. 以上都不对1

33、7. 深度为5的二叉树至多有 个结点。A. 16B. 32 C. 31D. 1018. 在一非空二叉树的中序遍历序列中, A.只有右子树上的所有结点C.只有左子树上的部分结点19. 树最适合用来表示 。A.有序数据元素C.元素之间具有分支层次关系的数据根结点的右边 。B. 只有右子树上的部分结点D. 只有左子树上的所有结点B. 无序数据元素D. 元素之间无联系的数据20. 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序。A.不发生改变B.发生改变C.不能确定D.以上都不对21. 实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用存储结构。A.二叉链表B.广义

34、表存储结构C.三叉链表D.顺序存储结构对一个满二叉树,m个树叶,n个结点,深度为h,则17A. n=h+mB. h+m=2 nC. m=h-1D. n=2 h-122. 如果某二叉树的前序为 stuwv,中序为uwtvs,那么该二叉树的后序为 。A. uwvtsB. vwutsC. wuvtsD. wutsv23. 具有五层结点的二叉平衡树至少有 个结点。A. 10 B. 12 C. 15 D. 1724. 设n, m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是 A. n在m右方B. n是m祖先C. n在 m左方D. n是m子孙6.2 填空题(将正确的答案填在相应的空中)1. 有一

35、棵树如图8.12所示,回答下面的问题:这棵树的根结点是;这棵树的叶子结点是;结点k3的度是;这棵树的度是;这棵树的深度是;结点k3的子女是;结点k3的父结点是;图8.12 一棵树2. 指出树和二叉树的三个主要差别 、。3. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是 4. 一棵二叉树的结点数据采用顺序存储结构,存储于数组t中,如图8.13所示,则该二叉树的链接表示形式为。5. 深度为k的完全二叉树至少有_个结点。至多有_个结点,若按自上而下,从左到右次序给结点编号(从 1开始),则编号最小的叶子结点的编号是 。6. 在一棵二叉树中,度为零的结点的个数为 no,度为

36、2的结点的个数为 n 2,则有n°=<7. 一棵二叉树的第i (i> 1 )层最多有 个结点;一棵有n (n>0)个结点的满二叉树共有个叶子和_个非终端结点。8. 结点最少的树为 ,结点最少的二叉树为 。9. 现有按中序遍历二叉树的结果为abc,问有种不同形态的二叉树可以得到这一遍历结果,这些二叉树分别是 。10. 根据二叉树的定义,具有三个结点的二叉树有 种不同的形态,它们分别是 。11. 由如图8.17所示的二叉树,回答以下问题:其中序遍历序列为;其前序遍历序列为;其后序遍历序列为; 该二叉树的中序线索二叉树为 ;该二叉树的后序线索二叉树为 ;该二叉树对应的森林

37、是 。图8.20 一棵树13.以数据集4 , 5, 6, 7, 10, 12, 18为结点权值所构造的Huffman树为,其带权路径长度为。6.3算法设计题:1 试编写算法,对一棵以孩子-兄弟链表表示的树统计叶子的个数。2. 一棵度为2的树与一棵二叉树有何区别?3. 一棵含有N个结点的k叉树,可能达到的最大深度和最小深度各为多少?4证明:一棵满k叉树上的叶子结点数 n0和非叶子结点数n1之间满足以下关系:no=(k-1)n 1+15.请对下图所示二叉树进行后序线索化,为每个空指针建立相应的前驱或后继线索。6. 画出和下列已知序列对应的树T:树的先根次序访问序列为GFKDAIEBCH;树的后根次

38、序访问序列为DIAEKFCJHBFG7. 假设用于通讯的电文仅有八个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。试为这八个字母设计哈夫曼编码。 使用0-7的二进制表示形式是另一种编码方案。对于上述实例,比较两种方案的优缺点。8. 假设一棵二叉树的先序序列为 EBADCFHGIK和中序序列为ABCDEFGHIJK请画出该树。9. 编写按层次顺序(同一层自左至右)遍历二叉树的算法。习题答案6.11. C2. B3. B 4. B 5. A6. B7. B8. B9. D 10. C11. B12. D13. B14. C15

39、. B16. A17. C18. A19. C20. A21.C22. D23. C24. B25. C6.21 k1 k2,k5,k7,k4 2 3 4 k5,k6 k12. 树的结点个数至少为1,而二叉树的结点个数可以为0;树中结点的最大度数没有限制,而二叉树结点的最大度数为2;树的结点无左、右之分,而二叉树的结点有左、右之分;3. 树可采用二叉树的存储结构并利用二叉树的已有算法解决树的有关问题4. 如图8.14所示k-1kk-25. 2、2 -1、2 +16. n2+1i-1 log n+1-1log n+17. 222228. 只有一个结点的树;空的二叉树9. 5;如图8.15所示10

40、. 5;如图 8.16 所示8.18 (左)所示 、如图8.18 (右)11. djbaechif、abdjcefhi、jdbeihfca、如图所示、如图8.19所示abiabcdegNULL图 8.19图8.18中序和后序线索树图8.2&113.如图8.22所示权值:165图8.22 Huffman 树习题七图7.1单项选择题1. 在一个图中,所有顶点的度数之和等于所有边数的 倍。A. 1/2B. 1C. 2D. 42. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。A. 1/2B. 1C. 2D. 43. 一个有n个顶点的无向图最多有条边。A. nB. n(n-1)

41、C. n(n-1)/2D. 2n4. 具有4个顶点的无向完全图有 条边。A. 6B. 12 C. 16D. 205. 具有6个顶点的无向图至少应有 条边才能确保是一个连通图。A. 5 B. 6 C. 7D. 86. 在一个具有n个顶点的无向图中,要连通全部顶点至少需要 条边。A. n B. n+1 C. n-1 D. n/27. 对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是 o2 2A. n B. (n-1)C. n-1 D. n8. 对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为;所有邻接表中的接点总数是一o A. nB. n+1C. n-1

42、D. n+e A. e/2B. eC.2eD. n+e9. 已知一个图如图9.5所示,若从顶点a出发按深度搜索法进行遍历,则可能得到的一种顶点序列为_;按宽度搜索法进行遍历,则可能得到的一种顶点序列为_o25 A. a,b,e,c,d,f A. a,b,c,e,d,fB. e,c,f,e,b,dB. a,b,c,e,f,dC. a,e,b,c,f,dC. a,e,b,c,f,dD. a,e,d,f,c,bD. a,c,f,d,e,b图9.5一个无向图10.已知一有向图的邻接表存储结构如图9.6所示。图9.6一个有向图的邻接表存储结构 根据有向图的深度优先遍历算法,从顶点 V1出发,所得到的顶点

43、序列是A. v1,v2,v3,v5,v4B.v1,v2,v3,v4,v5C. v1,v3,v4,v5,v2D.v1,v4,v3,v5,v2 根据有向图的宽度优先遍历算法,从顶点 v1出发,所得到的顶点序列是A. v1,v2,v3,v4,v5B.v1,v3,v2,v4,v5C. v1,v2,v3,v5,v4D.v1,v4,v3,v5,v211. 采用邻接表存储的图的深度优先遍历算法类似于二叉树的_。A.先序遍历B.中序遍历C.后序遍历D.按层遍历12. 采用邻接表存储的图的宽度优先遍历算法类似于二叉树的 。A.先序遍历B.中序遍历C.后序遍历D.按层遍历13. 判定一个有向图是否存在回路除了可以

44、利用拓扑排序方法外,还可以利用A.求关键路径的方法B.求最短路径的 Dijkstra方法C.宽度优先遍历算法D.深度优先遍历算法7.2 填空题(将正确的答案填在相应饿空中)1. n个顶点的连通图至少 条边。2. 在无权图G的邻接矩阵A中,若(vi,vj)或v vi,vj 属于图G的边集合,则对应元素Aij等于,否则等于。3. 在无向图G的邻接矩阵A中,若Aij等于1,则Aji 等于。4. 已知图G的邻接表如图9.7所示,其从顶点v1出发的深度有限搜索序列为 ,其从顶点v1出发的宽度优先搜索序列为。27#i个结点的入度的方法是_ i个结点出发的边的方法是图9.7 图G的邻接表5. 已知一个有向图

45、的邻接矩阵表示,计算第 6已知一个图的邻接矩阵表示,删除所有从第7.31 已知如图所示的有向图,请给出该图的(1) 每个顶点的入/出度;(2) 邻接距阵;(3) 邻接表;(4) 逆邻接表;强连通分量。#2 请用克鲁斯卡尔普里姆两种算法分别构造最小生成树:(1)#3. 试列出下图中全部的拓扑排序序列。#请用图示说明从顶点 a到其余各顶点之间的最短路径。#习题答案7.11. C2. B 3. C4. A5. A6. C7. D8. AC9. DB10. CB11. A12. D7.21. n-12. 1;03. 14. v1,v2,v3,v6,v5, v4 ; v1,v2,v5,v4,v3, v6

46、求矩阵第i列非零元素之和3296.将矩阵第i行全部置为零7.31.2.(2)111523643#1526341562345612345162345126345123644习题八 查 找8.1单项选择题1顺序查找法适合于存储结构为_的线性表。A.散列存储B.顺序存储或链接存储C.压缩存储D.索引存储2. 对线性表进行二分查找时,要求线性表必须 。A.以顺序方式存储B.以链接方式存储C. 以顺序方式存储,且结点按关键字有序排序D. 以链接方式存储,且结点按关键字有序排序3. 采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为 .A. nB. n/2C. (n+1)/2D. (n -1

47、)/24. 采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为 。A . 0 ( n )B. 0(nlog 2n)C. 0(n)D. O(log 2n)5. 二分查找和二叉排序树的时间性能 。A.相同B.不相同6. 有一个有序表为1 , 3, 9, 12, 32, 41, 45, 62, 75, 77, 82, 95, 100,当二分查找值82为的结点时, 次比较后查找成功。A. 1 B. 2 C. 4D. 87. 设哈希表长 m=14,哈希函数 H(key)=key%11。表中已有 4个结点:addr (15)=4; addr (38)=5; addr (61)=6; addr

48、 (84)=7如用二次探测再散列处理冲突,关键字为 49 的结点的地址是 。A. 8 B. 3 C. 5 D. 98. 有一个长度为 12 的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况 下查找成功所需的平均比较次数为 。A. 35/12 B. 37/12 C. 39/12 D. 43/128.2 填空题(将正确的答案填在相应的空中)1. 顺序查找法的平均查找长度为 ;二分查找法的平均查找长度为 ;分块查找法(以顺序查找确定块)的平均查找长度为 ;分块查找法(以二分查找确定块)的平均查找长度为 ;哈希表查找法采用链接法处理冲突时的平均查找长度为 。2. 在各种查找方法中,平均查找

49、长度与结点个数 n 无关的查找方法是 。3. 二分查找的存储结构仅限于 ,且是 。4. 在散列函数 H(key)=key%p 中, p 应取 。5. 假设在有序线性表 A1.20 上进行二分查找,则比较一次查找成功的结点数为 ,则比较二次查找成功的结点数为 ,则比较三次查找成功的结点数为 ,则比较四次查找成功的结点数为 ,则比较五次查找成功的结点数为 ,平均查找长度为 。6. 对于长度为 n 的线性表,若进行顺序查找,则时间复杂度为 ;若采用二分法查找,则时间复杂度为 ;7. 在散列存储中,装填因子 a 的值越大,则 ;的值越小,则 。8.3 综合练习题 :1. 画出对长度为 10 的有序表进

50、行折半查找的判定树, 并求其等概率时查找成功的平均查 找长度。2. 含九个叶子结点的 3 阶 B- 树中至少有多少个非叶子结点?含10 个叶子结点的 3 阶B-树中至多有多少个非叶子结点?3. 试从空树开始,画出按以下次序向2-3树即3阶B-树中插入关键码的建树过程:20,30,50,52,60,68,70. 如果此后删除 50 和 68,画出每一步执行后 2-3 树的状态。4. 选取哈稀函数 H( k)=( 3k)M0DI1。用开放定址法处理冲突,di=i (7k) MODIO+1)(1=1 ,2, 3,).试在0-10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,

51、67)造哈希表,并求等概率情况下查找成功时的平均查找长度。5. 已知一组关键字 49, 38, 65, 97, 76, 13, 27, 44, 82, 35, 50,画出由此生成的二 叉排序树,注意边插入边平衡。习题答案8.1 1. B 2. C 3. C 4. D 5. B 6. C 7. D 8. B(依题意,构造一棵有序二叉树,共 12个结点,第一层 1 个结点,第二层 2个结点,第 三层 4 个结点,第四层 5 个结点,则: ASL= (1*1+2*2+3*4+4*5 ) /12=37/12) 28.2 1. (n+1) /2 、 (n+ 1 )*log 2(n+1)/n-1 、(s2+2s+n) /2s 、 log2(n/s+ 1 )+s/2 、1+a2. 哈希表查找法3. 顺序存储结构、有序的4. 素数5. 1、2、4、8、 5、 76. O(n)、 O(log 2n)7. 存取元素时发生冲突的可能性就越大、存取元素时发生冲突的可能性就越小习 题 九 排 序9.1 单项选择题1. 在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是 。A. 希尔排序 B. 起泡排序 C. 插入排序 D. 选择排序2. 设有 1000个无序的元素, 希望用最快的速度挑选出其中前 10 个最大的元素, 最好选用 排序法。A. 起泡排序 B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论