文档库 最新最全的文档下载
当前位置:文档库 › 数据结构8

数据结构8

数据结构8
数据结构8

习题8 查找

8.1 单项选择题

1.顺序查找法适合于存储结构为____的线性表。

A. 散列存储

B. 顺序存储或链接存储

C. 压缩存储

D. 索引存储

2.对线性表进行二分查找时,要求线性表必须____。

A. 以顺序方式存储

B. 以链接方式存储

C. 以顺序方式存储,且结点按关键字有序排序

D. 以链接方式存储,且结点按关键字有序排序

3.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为____.

A. n

B. n/2

C. (n+1)/2

D. (n-1)/2

4.采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为____。

A.O(n2) B. O(nlog2n) C. O(n) D. O(log2n)

5.二分查找和二叉排序树的时间性能____。

A. 相同

B. 不相同

6.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值82为的结点时,____次比较后查找成功。

A. 1

B. 2

C. 4

D. 8

7.设哈希表长m=14,哈希函数H(key)=key%11。表中已有4个结点:

addr (15)=4; addr (38)=5; addr (61)=6; addr (84)=7

如用二次探测再散列处理冲突,关键字为49的结点的地址是____。

A. 8

B. 3

C. 5

D. 9

8.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为____。

A. 35/12

B. 37/12

C. 39/12

D. 43/12

9.对于静态表的顺序查找法,若在表头设置岗哨,则正确的查找方式为。

A.从第0个元素往后查找该数据元素

B.从第1个元素往后查找该数据元素

C.从第n个元素往开始前查找该数据元素

D.与查找顺序无关

10.解决散列法中出现的冲突问题常采用的方法是。

A.数字分析法、除余法、平方取中法

B.数字分析法、除余法、线性探测法

C.数字分析法、线性探测法、多重散列法

D.线性探测法、多重散列法、链地址法

11.采用线性探测法解决冲突问题,所产生的一系列后继散列地址。

A.必须大于等于原散列地址

B.必须小于等于原散列地址

C.可以大于或小于但不能等于原散列地址

D.地址大小没有具体限制

12.对于查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。这种方式主要适合于。

A.静态查找表

B.动态查找表

C.静态查找表与动态查找表D两种表都不适合

13.散列表的平均查找长度。

A.与处理冲突方法有关而与表的长度无关

B.与处理冲突方法无关而与表的长度有关

C.与处理冲突方法有关而与表的长度有关

D.与处理冲突方法无关而与表的长度无关

8.2 填空题(将正确的答案填在相应的空中)

1.顺序查找法的平均查找长度为____;折半查找法的平均查找长度为____;哈希表查找法采用链接法处理冲突时的平均查找长度为____。

2.在各种查找方法中,平均查找长度与结点个数n无关的查找方法是____。

3.折半查找的存储结构仅限于____,且是____。

4.假设在有序线性表A[1..20]上进行折半查找,则比较一次查找成功的结点数为____,则比较二次查找成功的结点数为____,则比较三次查找成功的结点数为____,则比较四次查找成功的结点数为____,则比较五次查找成功的结点数为____,平均查找长度为____。

5.对于长度为n的线性表,若进行顺序查找,则时间复杂度为____;若采用折半法查找,则时间复杂度为____;

6.已知有序表为(12,18,24,35,47,50,62,83,90,115,134),当用折半查找90时,需进行次查找可确定成功;查找47时,需进行次查找成功;查找100时,需进行次查找才能确定不成功。

7.二叉排序树的查找长度不仅与有关,也与二叉排序树的有关。

8.一个无序序列可以通过构造一棵树而变成一个有序树,构造树的过程即为对无序序列进行排序的过程。

9.平衡二叉排序树上任一结点的平衡因子只可能是、或。

10.法构造的哈希函数肯定不会发生冲突。

11.在散列函数H(key)=key%p中,p应取____。

12.在散列存储中,装填因子α的值越大,则____;α的值越小,则____。

8.3 综合练习题:

1. 画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。

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)MOD 11。用开放定址法处理冲突,di=i((7k)MOD 10+1)(I=1,2,3,…).试在0-10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,67)造哈希表,并求等概率情况下查找成功时的平均查找长度。

5.已知一组关键字{49,38,65,97,76,13,27,44,82,35,50},画出由此生成的二叉排序树,注意边插入边平衡。

习题答案

8.11.B 2.C 3.C 4.D 5.B 6.C 7.D 8.B

9.C 10.D 11.C 12.B 13.C

8.2 1. (n+1)/2 、((n+1)*log2(n+1))/n-1 、1+α(α为装填因子)

2. 哈希表查找法

3. 顺序存储结构、有序的

4. 1、2、4、8、5、3.7

(依题意,构造一棵有序二叉树,共12个结点,第一层1个结点,第二层2个结点,第三层4个结点,第四层5个结点,则:ASL=(1*1+2*2+3*4+4*5)/12=37/12)

5. O(n)、O(log2n)

6.2、4、3

7.结点个数n、生成过程

8.二叉排序树

9.0、1、-1

10.直接定址

11.素数

12.存取元素时发生冲突的可能性就越大、存取元素时发生冲突的可能性就越小

数据结构课后习题与解析第六章

第六章习题 1.试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。2.对题1所得各种形态的二叉树,分别写出前序、中序和后序遍历的序列。 3.已知一棵度为k的树中有n 1个度为1的结点,n 2 个度为2的结点,……,n k 个度为k的结点, 则该树中有多少个叶子结点并证明之。 4.假设一棵二叉树的先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请画出该二叉树。 5.已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个? 6.给出满足下列条件的所有二叉树: ①前序和后序相同 ②中序和后序相同 ③前序和后序相同 7. n个结点的K叉树,若用具有k个child域的等长链结点存储树的一个结点,则空的Child 域有多少个? 8.画出与下列已知序列对应的树T: 树的先根次序访问序列为GFKDAIEBCHJ; 树的后根次序访问序列为DIAEKFCJHBG。 9.假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为: 0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10 请为这8个字母设计哈夫曼编码。 10.已知二叉树采用二叉链表存放,要求返回二叉树T的后序序列中的第一个结点指针,是否可不用递归且不用栈来完成?请简述原因. 11. 画出和下列树对应的二叉树:

12.已知二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。 13.编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。 14.分别写函数完成:在先序线索二叉树T中,查找给定结点*p在先序序列中的后继。在后序线索二叉树T中,查找给定结点*p在后序序列中的前驱。 15.分别写出算法,实现在中序线索二叉树中查找给定结点*p在中序序列中的前驱与后继。 16.编写算法,对一棵以孩子-兄弟链表表示的树统计其叶子的个数。 17.对以孩子-兄弟链表表示的树编写计算树的深度的算法。 18.已知二叉树按照二叉链表方式存储,利用栈的基本操作写出后序遍历非递归的算法。 19.设二叉树按二叉链表存放,写算法判别一棵二叉树是否是一棵正则二叉树。正则二叉树是指:在二叉树中不存在子树个数为1的结点。 20.计算二叉树最大宽度的算法。二叉树的最大宽度是指:二叉树所有层中结点个数的最大值。 21.已知二叉树按照二叉链表方式存储,利用栈的基本操作写出先序遍历非递归形式的算法。 22. 证明:给定一棵二叉树的前序序列与中序序列,可唯一确定这棵二叉树; 给定一棵二叉树的后序序列与中序序列,可唯一确定这棵二叉树; 23. 二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。 24. 二叉树按照二叉链表方式存储,编写算法,将二叉树左右子树进行交换。 实习题 1.[问题描述] 建立一棵用二叉链表方式存储的二叉树,并对其进行遍历(先序、中序和后序), 打印输出遍历结果。

(完整word版)数据结构 第八章排序

第八章排序:习题 习题 一、选择题 1.在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。 A.希尔排序 B.冒泡排序 C.插入排序 D.选择排序 2.设有1000个无序的记录,希望用最快的速度挑选出其中前10个最大的记录,最好选用( )排序法。 A.冒泡排序 B.快速排序 C.堆排序 D.基数排序 3.在待排序的记录序列基本有序的前提下,效率最高的排序方法是( )。 A.插入排序 B.选择排序 C.快速排序 D.归并排序’ 4.不稳定的排序方法是指在排序中,关键字值相等的不同记录的前后相对位置( )。 A.保持不变 B.保持相反 C.不定 D.无关 5.内部排序是指在排序的整个过程中,全部数据都在计算机的( )中完成的排序。 A. 内存储器 B.外存储器 C.内存储器和外存储器 D.寄存器 6.用冒泡排序的方法对n个数据进行排序,第一趟共比较( )对记录。 A.1 B.2 C.n-l D.n 7.直接插入排序的方法是从第( )个记录开始,插入前边适当位置的排序方法。 A.1 B.2 C.3 D.n 8.用堆排序的方法对n个数据进行排序,首先将n个记录分成( )组。 A.1 B.2 C.n-l D.n 9.归并排序的方法对n个数据进行排序,首先将n个记录分成( )组,两两归并。 A.1 B.2 C.n-l D.n 10.直接插入排序的方法要求被排序的数据( )存储。 A.必须是顺序 B.必须是链表 C.顺序或链表 D.二叉树 11.冒泡排序的方法要求被排序的数据( )存储。 A.必须是顺序 B.必须是链表 C.顺序或链表 D.二叉树 12.快速排序的方法要求被排序的数据( )存储。 A.必须是顺序 B.必须是链表 C.顺序或链表 D.二叉树 13.排序方法中,从未排序序列中依次取出记录与已排序序列(初始时为空)中的记录进行比较,将其放入已排序序列的正确位置上的方法,称为( )。 A.希尔排序 B.冒泡排序 C.插入排序 D.选择排序 14.每次把待排序的记录划分为左、右两个子序列,其中左序列中记录的关键字均小于等于基准记录的关键字,右序列中记录的关键字均大于基准记录的关键字,则此排序方法叫做( )。 A.堆排序 B.快速排序 C.冒泡排序 D. Shell排序 15.排序方法中,从未排序序列中挑选记录,并将其依次放入已排序序列(初始时为空)的一端的方法,称为( )。 A.希尔排序 B.归并排序 C.插入排序 D.选择排序 16.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,记录序列的变化情况如下: (1) (25,84,21,47,15,27,68,35,40) (2) (20,15,21,25,47,27,68,35,84)

数据结构第六章习题课

1、下图所示的4棵二叉树中,不是完全二叉树的是() 2、二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法()。 A 、正确 B 、错误 C 、不一定 3、已知某二叉树的后序遍历序列是dabec ,中序遍历序列是debac ,它的前序遍历序列是()。 A 、acbed B 、decab C 、deabc D 、cedba 4、如果T2是由有序树T 转换而来的二叉树,那么T 中结点的后序就是T2中结点的()。 A 、前序 B 、中序 C 、后序 D 、层次序 5、深度为5的二叉树至多有()个结点。 A 、16 B 、32 C 、31 D 、10 6、在一个非空二叉树的中序遍历序列中,根结点的右边()。 A 、只有右子树上的所有结点 B 、只有右子树上的部分结点 C 、只有左子树上的部分结点 D 、只有左子树上的所有结点 7、树最适合用来表示()。 A 、有序数据元素 B 、无序数据元素 C 、元素之间具有分支层次关系的数据 D 、元素之间无联系的数据。 8、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()。 A 、不发生改变 B 、发生改变 C 、不能确定 D 、以上都不对 9、实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用()存储结构。 A 、二叉链表 B 、广义表存储结构 C 、三叉链表 D 、顺序存储结构 10、对一个满二叉树,m 个树叶,n 个结点,深度为h ,则()。 A 、n=m+h B 、h+m=2n C 、m=h-1 D 、n=2h -1 11、设n ,m 为二叉树上的两个结点,在中序遍历时,n 在m 前的条件是()。 A 、n 在m 右方 B 、n 是m 祖先 C 、n 在m 左方 D 、n 是m 子孙 12.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/- , A B C D

数据结构第八章习题及答案

习题八查找 一、单项选择题 1.顺序查找法适合于存储结构为()的线性表。 A.散列存储 B. 顺序存储或链式存储 C. 压缩存储 D. 索引存储 2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n 3.适用于折半查找的表的存储方式及元素排列要求为( ) A.链接方式存储,元素无序 B.链接方式存储,元素有序 C.顺序方式存储,元素无序 D.顺序方式存储,元素有序 4.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( ) A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减5.当采用分块查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 6.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法()。 A.正确 B. 错误 7. 二叉查找树的查找效率与二叉树的((1) )有关, 在 ((2) )时其查找效率最低。 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。 8.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。 A. 分快查找 B. 顺序查找 C. 折半查找 D. 基于属性 9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )。 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) 10.下图所示的4棵二叉树,( )是平衡二叉树。 (A)(B)(C)(D) 11.散列表的平均查找长度()。 A.与处理冲突方法有关而与表的长度无关 B.与处理冲突方法无关而与表的长度有关 C.与处理冲突方法有关且与表的长度有关 D.与处理冲突方法无关且与表的长度无关 12. 设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有()个

数据结构-第六章-图-练习题及答案详细解析(精华版)

图 1. 填空题 ⑴ 设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。 【解答】0,n(n-1)/2,0,n(n-1) 【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。 ⑵ 任何连通图的连通分量只有一个,即是()。 【解答】其自身 ⑶ 图的存储结构主要有两种,分别是()和()。 【解答】邻接矩阵,邻接表 【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。 ⑷ 已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。 【解答】O(n+e) 【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。 ⑸ 已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。 【解答】求第j列的所有元素之和 ⑹ 有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。 【解答】出度

⑺ 图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。 【解答】前序,栈,层序,队列 ⑻ 对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。 【解答】O(n2),O(elog2e) 【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。 ⑼ 如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。 【解答】回路 ⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。 【解答】vi, vj, vk 【分析】对由顶点vi, vj, vk组成的图进行拓扑排序。 2. 选择题 ⑴ 在一个无向图中,所有顶点的度数之和等于所有边数的()倍。 A 1/2 B 1 C 2 D 4 【解答】C 【分析】设无向图中含有n个顶点e条边,则。

数据结构第六章树和二叉树习题及答案

习题六树和二叉树 一、单项选择题 1.以下说法错误的是() A. 树形结构的特点是一个结点可以有多个直接前趋 B. 线性结构中的一个结点至多只有一个直接后继 C. 树形结构可以表达(组织)更复杂的数据 D. 树(及一切树形结构)是一种”分支层次”结构 E. 任何只含一个结点的集合是一棵树 2. 下列说法中正确的是() A. 任何一棵二叉树中至少有一个结点的度为2 B. 任何一棵二叉树中每个结点的度都为2 C. 任何一棵二叉树中的度肯定等于2 D. 任何一棵二叉树中的度可以小于2 3. 讨论树、森林和二叉树的关系,目的是为了() A. 借助二叉树上的运算方法去实现对树的一些运算 B. 将树、森林按二叉树的存储方式进行存储 C. 将树、森林转换成二叉树 D. 体现一种技巧,没有什么实际意义4.树最适合用来表示() A. 有序数据元素 B .无序数据元素 C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B .11 C .15 D .不确定 6. 设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1, M2和M3与森林F 对应的二叉树根结点的右子树上的结点个数是()。 A.M1 B .M1+M2 C .M3 D .M2+M3 7.一棵完全二叉树上有1001个结点,其中叶子结点的个数是() A.250 B .500 C .254 D .505 E .以上答案都不对 8. 设给定权值总数有n 个,其哈夫曼树的结点总数为() A. 不确定 B . 2n C . 2n+1 D . 2n-1 9.二叉树的第I 层上最多含有结点数为() I I-1 I-1 I A.2I B .2 I-1 -1 C .2 I-1 D .2 I -1 10.一棵二叉树高度为h, 所有结点的度或为0,或为2,则这棵二叉树最少有()结点A.2h B .2h-1 C .2h+1 D .h+1 11. 利用二叉链表存储树,则根结点的右指针是()。 A.指向最左孩子 B .指向最右孩子 C .空D .非空 12.已知一棵二叉树的前序遍历结果为为()。 A.CBEFDA B .FEDCBA 13.已知某二叉树的后序遍历序列是()。 ABCDEF中序遍历结果 为 C .CBEDFA D dabec, 中序遍历序列是 CBAEDF则后序遍历的结 果 .不定 debac , 它的前序遍历是

数据结构第八章习题及答案教学提纲

数据结构第八章习题 及答案

习题八查找 一、单项选择题 1.顺序查找法适合于存储结构为()的线性表。 A.散列存储 B. 顺序存储或链式存储 C. 压缩存储 D. 索引存储 2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n 3.适用于折半查找的表的存储方式及元素排列要求为( ) A.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序 D.顺序方式存储,元素有序 4.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( ) A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减 5.当采用分块查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成 索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 6.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法()。 A.正确 B. 错误 7. 二叉查找树的查找效率与二叉树的((1) )有关, 在 ((2) )时其查找效率最低。 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复 杂。 8.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。 A. 分快查找 B. 顺序查找 C. 折半查找 D. 基于属性9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )。 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)

数据结构 第六章 图 练习题及答案详细解析

图 1. 填空题 ⑴设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。 【解答】0,n(n-1)/2,0,n(n-1) 【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。 ⑵任何连通图的连通分量只有一个,即是()。 【解答】其自身 ⑶图的存储结构主要有两种,分别是()和()。 【解答】邻接矩阵,邻接表 【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。 ⑷已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。 【解答】O(n+e) 【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。 ⑸已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。 【解答】求第j列的所有元素之和 ⑹有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。 【解答】出度 ⑺图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。 【解答】前序,栈,层序,队列 ⑻对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。 【解答】O(n2),O(elog2e) 【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。 ⑼如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。 【解答】回路 ⑽在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。 【解答】vi, vj, vk

《数据结构》第八章习题参考答案 (1)

《数据结构》第八章习题参考答案 一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”) 1、用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关。( ×) 2、有e条边的无向图,在邻接表中有e个结点。(×) 3、强连通图的各顶点间均可达。(√) 4、无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵。(×) 5、一个网(带权图)都有唯一的最小生成树。( ×) 6、最小生成树问题是构造连通网的最小代价生成树。( √) 7、关键路径是AOE网中从源点到终点的最长路径。(√) 8、在AOE图中,关键路径上活动的时间延长多少,整个工程的时间也就随之延长多少。(√) 9、n个顶点的完全有向图的边数为n(n-1)。(√) 10、稀疏图的存储结构采用邻接表比较合适。(√) 11、在图G的最小生成树T中,可能会有某条边的权值超过未选边的权值。(√) 二、单项选择题 1.具有4个顶点的无向完全(边数为n*(n-1)/2)图有(A)条边。 A.6 B.12 C.16 D.20 2.下列哪一种图的邻接矩阵是对称矩阵?(B) A.有向图B.无向图C.AOV网D.AOE网 3、在图采用邻接矩阵存储时,求最小生成树的Prim算法的时间复杂度为( C)。 A. O(n) B. O(n+e) C. O(n2) D. O(n3) 4、(1). 求从指定源点到其余各顶点的迪杰斯特拉(Dijkstra)最短路径算法中弧上权不能为负的原因是在实际应用中无意义; (2). 利用Dijkstra求每一对不同顶点之间的最短路径的算法时间是O(n3) ;(图用邻接矩阵表示) (3). Floyd求每对不同顶点对的算法中允许弧上的权为负,但不能有权和为负的回路。 上面不正确的是(A)。 A.(1),(2),(3) B.(1) C.(1),(3) D.(2),(3) 5、下列说法不正确的是( C )。 A.图的遍历是从给定的源点出发每一个顶点仅被访问一次 B.遍历的基本算法有两种:深度遍历和广度遍历 C.图的深度遍历不适用于有向图 D.图的深度遍历是一个递归过程 三、填空题

《数据结构》习题汇编08_第八章_查找_试题

数据结构课程(本科)第七章试题 一、单项选择题 1.若搜索每一个元素的概率相等,则在长度为n的顺序表上搜索到表中任一元素的平均搜索长度为 ()。 A. n B. n+1 C. (n-1)/2 D. (n+1)/2 2.对长度为10的顺序表进行搜索,若搜索前面5个元素的概率相同,均为1/8,搜索后面5个元素的概 率相同,均为3/40,则搜索到表中任一元素的平均搜索长度为()。 A. 5.5 B. 5 C. 39/8 D. 19/4 3.对长度为3的顺序表进行搜索,若搜索第一个元素的概率为1/2,搜索第二个元素的概率为1/3,搜索 第三个元素的概率为1/6,则搜索到表中任一元素的平均搜索长度为()。 A. 5/3 B. 2 C. 7/3 D. 4/3 4.对长度为n的有序单链表,若搜索每个元素的概率相等,则顺序搜索到表中任一元素的平均搜索长度 为()。 A. n/2 B. (n+1)/2 C. (n-1)/2 D. n/4 5.对于长度为n的有序顺序表,若采用折半搜索,则对所有元素的搜索长度中最大的为()的值 的向上取整。 A. log2(n+1) B. log2n C. n/2 D. (n+1)/2 6.对于长度为n的有序顺序表,若采用折半搜索,则对所有元素的搜索长度中最大的为()的值 的向下取整加一。 A. log2(n+1) B. log2n C. n/2 D. (n+1)/2 7.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为() 的值除以9。 A. 20 B. 18 C. 25 D. 22 8.对于长度为18的有序顺序表,若采用折半搜索,则搜索第15个元素的搜索长度为()。 A. 3 B. 4 C. 5 D. 6 9.对具有n个元素的有序顺序表进行折半搜索,则搜索任一元素的时间复杂度为()。 A. O(n) B. O(n2) C. O(1) D. O(log2n) 10.在一棵高度为h的具有n个元素的二叉搜索树中,搜索所有元素的搜索长度中最大的为()。 A. n B. log2n C. (h+1)/2 D. h+1 11.从具有n个结点的二叉搜索树中搜索一个元素时,在等概率情况下进行成功搜索的时间复杂度大致为 ()。 A. O(n) B. O(1) C. O(log2n) D. O(n2)

数据结构课后习题答案第六章

第六章树和二叉树(下载后用阅读版式视图或web版式可以看清) 习题 一、选择题 1.有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。表示该遗传关系最适合的数据结构为( )。 A.向量 B.树C图 D.二叉树 2.树最合适用来表示( )。 A.有序数据元素 B元素之间具有分支层次关系的数据 C无序数据元素 D.元素之间无联系的数据 3.树B的层号表示为la,2b,3d,3e,2c,对应于下面选择的( )。 A. la (2b (3d,3e),2c) B. a(b(D,e),c) C. a(b(d,e),c) D. a(b,d(e),c) 4.高度为h的完全二叉树至少有( )个结点,至多有( )个结点。 A. 2h_l B.h C.2h-1 D. 2h 5.在一棵完全二叉树中,若编号为f的结点存在右孩子,则右子结点的编号为( )。 A. 2i B. 2i-l C. 2i+l D. 2i+2 6.一棵二叉树的广义表表示为a(b(c),d(e(,g(h)),f)),则该二叉树的高度为( )。 A.3 B.4 C.5 D.6 7.深度为5的二叉树至多有( )个结点。 A. 31 B. 32 C. 16 D. 10 8.假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为( )个。 A. 15 B. 16 C. 17 D. 47 9.题图6-1中,( )是完全二叉树,( )是满二叉树。 10.在题图6-2所示的二叉树中:

(1)A结点是 A.叶结点 B根结点但不是分支结点 C根结点也是分支结点 D.分支结点但不是根结点 (2)J结点是 A.叶结点 B.根结点但不是分支结点 C根结点也是分支结点 D.分支结点但不是根结点 (3)F结点的兄弟结点是 A.E B.D C.空 D.I (4)F结点的双亲结点是 A.A B.B C.C D.D (5)树的深度为 A.1 B.2 C.3 D.4 (6)B结点的深度为 A.1 B.2 C.3 D.4 (7)A结点所在的层是 A.1 B.2 C.3 D.4 11.在一棵具有35个结点的完全二叉树中,该树的深度为( )。 A.5 B.6 C.7 D.8 12. 一棵有124个叶结点的完全二叉树,最多有( )个结点。 A.247 B.248 C.249 D.250 13.用顺序存储的方法将完全二叉树中所有结点逐层存放在数组R[1…n]中,结点R[i]若 有左子树,则左子树是结点( )。 A. R[2i+l] B. R[2i] C.R[i/2] D. R[2i-1] 14.在一非空二叉树的中序遍历序列中,根结点的右边( )。 A.只有右子树上的所有结点 B.只有右子树上的部分结点 C.只有左子树上的部分结点 D.只有左子树上的所有结点 15.一棵度为m的树中,有n i个度为1的结点,有n2个度为2的结点……,有n m个度为m的结点,则该树的叶结点数为( )。 A. n1+n2+...+n m B. (m-l) n m+...+n2+1

数据结构 第八章 查找自测题

第9章查找自测卷姓名班级 一、填空题(每空1分,共10分) 1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是。 2. 线性有序表(a1,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索次。设有100个结点,用二分法查找时,最大比较次数是。 3. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结 点数为;比较四次查找成功的结点数为;平均查找长度为。 4.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素比较大小。 5. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是。 6. 散列法存储的基本思想是由决定数据的存储地址。 7. 有一个表长为m的散列表,初始状态为空,现将n(n

数据结构第六章知识题课

1、下图所示的4棵二叉树中,不是完全二叉树的是( ) 2、二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法( )。 A 、正确 B 、错误 C 、不一定 3、已知某二叉树的后序遍历序列是dabec ,中序遍历序列是debac ,它的前序遍历序列是( )。 A 、acbed B 、decab C 、deabc D 、cedba 4、如果T2是由有序树T 转换而来的二叉树,那么T 中结点的后序就是T2中结点的( )。 A 、前序 B 、中序 C 、后序 D 、层次序 5、深度为5的二叉树至多有( )个结点。 A 、16 B 、32 C 、31 D 、10 6、在一个非空二叉树的中序遍历序列中,根结点的右边( )。 A B C D

A、只有右子树上的所有结点 B、只有右子树上的部分结点 C、只有左子树上的部分结点 D、只有左子树上的所有结点 7、树最适合用来表示()。 A、有序数据元素 B、无序数据元素 C、元素之间具有分支层次关系的数据 D、元素之间无联系的数据。 8、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()。 A、不发生改变 B、发生改变 C、不能确定 D、以上都不对 9、实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用()存储结构。 A、二叉链表 B、广义表存储结构 C、三叉链表 D、顺序存储结构 10、对一个满二叉树,m个树叶,n个结点,深度为h,则()。 A、n=m+h B、h+m=2n C、m=h-1 D、n=2h-1 11、设n,m为二叉树上的两个结点,在中序遍历时,n在m前的条件是()。 A、n在m右方 B、n是m祖先 C、n在m左方 D、n是m子孙12.已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,

数据结构第八章习题答案

第八章查找 1.若为大小均为n的有序的顺序表和无序的顺序表分别进行顺序查找,试在下列三种情况下分别讨论两者在等概率时的平均查找长度是否相同? (1)查找不成功,即表中没有关键字等于给定值K的记录; (2)查找成功,且表中只有一个关键字等于给定值K的记录; (3)查找成功,且表中有若干个关键字等于给定值K的记录,一次查找要求找出所有记录。此时平均查找长度应考虑找到所有记录时所用的比较次数。 【解答】在已知的有序表进行顺序排序,可对顺序查找算法进行改进。 (1)不相同; (2)相同; (3)不相同。 2.画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。 【解答】 等概率时查找成功的平均查找长度=(1+2*2+3*4+4*3)/10=2.9 3.已知下列长度为7的表(50, 40, 30, 60, 55, 58, 59)。 (1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成后的二叉排序树,求其在等概率情况下查找成功的平均查找长度。 (2)按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率情况下查找成功的平均查找长度。

【解答】 (1) 等概率情况下查找成功的平均查找长度=(1+2*2+3*2+4+5)/7=20/7 (2) 等概率情况下查找成功的平均查找长度=(1+2*2+3*4)/7=17/7 4.在地址空间为0~16的散列区中,自己构造哈希函数,对以下关键字序列构造哈希表: (Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec) (1)用线性探测开放定址法处理冲突; (2)用链地址法处理冲突。 并分别求这两个哈希表在等概率情况下查找成功和不成功的平均查找长度。【解答】略。

数据结构第8章 查找 答案

第8章查找测试题及答案一、填空题 1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是顺序查找(线性查找)。 2. 线性有序表(a,a,a,…,a)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相123256等的元素,在 查找不成功的情况下,最多需要检索8 次。设有100个结点,用二分法查找时,最大比较次 数是7。 3. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1; 比较两次查找成功的结点数为 2;比较四次查找成功的结点数为 8;平均查找长度为 3.7。 5解:显然,平均查找长度=O(logn)<5次(2)。但具体是多少次,则不应当按照公式2m来计算(即 (21×log21)/20=4.6次并不正确!)。因为这是在假设n=2-1的情况下22n推导出来的公式。应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL=74/20=3.7 !!!4.【计研 题2000】折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20, 它将依次与表中元素 28,6,12,20比较大小。 5. 在各种查找方法中,平均查找长度与结 点个数n无关的查找方法是散列查找。 6. 散列法存储的基本思想是由关键字的值决定数 据的存储地址。 7. 有一个表长为m的散列表,初始状态为空,现将n(n

数据结构第八章参考答案

习题8 1.填空题 (1)排序的主要目的是为了以后对已排序的数据元素进行(___________)。 答案:查找 (2)对n个元素进行起泡排序,在(___________)的情况下比较的次数最少,其比较次数 为(___________);在(___________)的情况下比较次数最多,其比较次数为(___________)。 答案:原始序列有序n-1 原始序列逆序n(n-1)/2 (3)对一组元素{54,38,96,23,15,72,60,45,83}进行直接插入排序,当第7个元素60插入到有 序表时,寻找插入位置需比较(___________)次。 答案:3 (4)对一族元素{54,38,96,23,15,72,60,45,83}进行快速排序,在递归调用中使用的栈所能达到 的最大深度为(___________) 答案:4 (5)对n个待排序元素序列进行快速排序,所需最好时间是(___________),最坏时间是 (___________)。 答案:O(nlogn) O(n2) (6)利用简单选择排序对n个元素进行排序,最坏情况下,元素交换的次数为 (___________)。 答案:n-1 (7)如果将序列{50,16,23,68,94,70,73}建成堆,只需把16与(___________)交换。 答案:50 (8)对于键值序列{12,13,11,18,60,15,7,18,25,100},用筛选法建堆,必须从键值为 (___________)的结点开始。 答案:60 (9)采用改进的冒泡排序对有n个记录的表A按键值递增排序,若L的初始状态是按键值递 增,则排序过程中记录的比较次数为(___________)。若A的初始状态为递减排序,则记录的交换次数为(___________)。 答案:n-1 n(n-1)/2 2.单选题 (1)从未排序序列中依此取出一个元素与已排序序列中的元素依此进行比较,然后将其放在 已排序序列的合适位置,该排序方法称为()排序法。 A.插入排序 B. 选择排序 C. 希尔排序 D. 二路归并排序 (2)一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对象为基 准而得到的第一次划分结果为()。 A. {38,46,79,56,40,84} B. {38,79,56,46,40,84} C. {40,38,46,56,79,84} C. {38,46,56,79,40,84} (3)对二叉排序树进行()遍历,可以得到该二叉树所有节点构成的排序序列。 A. 前序 B. 中序 C. 后序 D. 按层序 (4)当待排序列基本有序时,下列排序方法中()最好。 A. 直接插入排序 B. 快速排序 C. 堆排序 D. 归并排序

数据结构第八章

一、选择题 1.下列排序算法中,其中()是稳定的。 A. 堆排序,冒泡排序 B. 快速排序,堆排序 C. 直接选择排序,归并排序 D. 归并排序,冒泡排序 2.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47 (4)15 21 25 47 84 则采用的排序是()。 A. 选择 B. 冒泡 C. 快速 D. 插入 3.下列序列中,()是执行第一趟快速排序后所得的序列。 A. [68,11,18,69] [23,93,73] B. [68,11,69,23] [18,93,73] C. [93,73] [68,11,69,23,18] D. [68,11,69,23,18] [93,73] 4.对初始状态为递增序列的表按递增顺序排序,最省时间的是(C)算法,最费时间的是(B)算法。 A. 堆排序 B. 快速排序 C. 插入排序 D. 归并排序 5.下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是:()。 A. 直接插入排序 B. 快速排序 C. 直接选择排序 D. 堆排序 二、填空题 1.已知待排序的n个元素可以分为n/k个组,每个组包含k个元素,且任一组内的各元素均分别大于前一组内所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为_____O(nlog2k)__________。 2.数据序列(2,1,4,9,8,10,6,20)只能是排序算法中的____快速排序____的两趟排序后的结果。 3.在含有n个关键字的小顶堆中,关键字可能存储的位置是_____n/2________。 4.辅助空间为O(n)的排序方式是_____归并排序_______。 5.对序列(15,9,7,8,20,-1,4)进行排序,进行一趟后数据的排列变为(4,9,-1,8,20,7,15),则采用的是______希尔______排序。

(完整版)数据结构与算法第8章答案

第8 章排序技术 课后习题讲解 1. 填空题 ⑴排序的主要目的是为了以后对已排序的数据元素进行()。 【解答】查找 【分析】对已排序的记录序列进行查找通常能提高查找效率。 ⑵对n个元素进行起泡排序,在()情况下比较的次数最少,其比较次数为()。在()情况下比较次数最多,其比较次数为()。 【解答】正序,n-1,反序,n(n-1)/2 ⑶对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置需比较()次。 【解答】3 【分析】当把第7个记录60插入到有序表时,该有序表中有2个记录大于60。 ⑷对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行快速排序,在递归调用中使用的栈所能达到的最大深度为()。 【解答】3 ⑸对n个待排序记录序列进行快速排序,所需要的最好时间是(),最坏时间是()。 【解答】O(nlog2n),O(n2) ⑹利用简单选择排序对n个记录进行排序,最坏情况下,记录交换的次数为()。 【解答】n-1 ⑺如果要将序列(50,16,23,68,94,70,73)建成堆,只需把16与()交换。 【解答】50 ⑻对于键值序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,必须从键值为()的结点开始。 【解答】60 【分析】60是该键值序列对应的完全二叉树中最后一个分支结点。 2. 选择题 ⑴下述排序方法中,比较次数与待排序记录的初始状态无关的是()。 A插入排序和快速排序B归并排序和快速排序 C选择排序和归并排序D插入排序和归并排序 【解答】C

相关文档
相关文档 最新文档