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

合集下载

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

(完整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.1B.2C.n-lD.n7.直接插入排序的方法是从第( )个记录开始,插入前边适当位置的排序方法。

A.1B.2C.3D.n8.用堆排序的方法对n个数据进行排序,首先将n个记录分成( )组。

A.1B.2C.n-lD.n9.归并排序的方法对n个数据进行排序,首先将n个记录分成( )组,两两归并。

A.1B.2C.n-lD.n10.直接插入排序的方法要求被排序的数据( )存储。

A.必须是顺序B.必须是链表C.顺序或链表D.二叉树11.冒泡排序的方法要求被排序的数据( )存储。

A.必须是顺序B.必须是链表C.顺序或链表D.二叉树12.快速排序的方法要求被排序的数据( )存储。

A.必须是顺序B.必须是链表C.顺序或链表D.二叉树13.排序方法中,从未排序序列中依次取出记录与已排序序列(初始时为空)中的记录进行比较,将其放入已排序序列的正确位置上的方法,称为( )。

A.希尔排序B.冒泡排序C.插入排序D.选择排序14.每次把待排序的记录划分为左、右两个子序列,其中左序列中记录的关键字均小于等于基准记录的关键字,右序列中记录的关键字均大于基准记录的关键字,则此排序方法叫做( )。

《数据结构(C语言版 第2版)》(严蔚敏 著)第八章练习题答案

《数据结构(C语言版 第2版)》(严蔚敏 著)第八章练习题答案

《数据结构(C语言版第2版)》(严蔚敏著)第八章练习题答案第8章排序1.选择题(1)从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,这种排序方法称为()。

A.归并排序B.冒泡排序C.插入排序D.选择排序答案:C(2)从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()。

A.归并排序B.冒泡排序C.插入排序D.选择排序答案:D(3)对n个不同的关键字由小到大进行冒泡排序,在下列()情况下比较的次数最多。

A.从小到大排列好的B.从大到小排列好的C.元素无序D.元素基本有序答案:B解释:对关键字进行冒泡排序,关键字逆序时比较次数最多。

(4)对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数最多为()。

A.n+1B.n C.n-1D.n(n-1)/2答案:D解释:比较次数最多时,第一次比较n-1次,第二次比较n-2次……最后一次比较1次,即(n-1)+(n-2)+…+1=n(n-1)/2。

(5)快速排序在下列()情况下最易发挥其长处。

A.被排序的数据中含有多个相同排序码B.被排序的数据已基本有序C.被排序的数据完全无序D.被排序的数据中的最大值和最小值相差悬殊答案:C解释:B选项是快速排序的最坏情况。

(6)对n个关键字作快速排序,在最坏情况下,算法的时间复杂度是()。

A.O(n)B.O(n2)C.O(nlog2n)D.O(n3)答案:B解释:快速排序的平均时间复杂度为O(nlog2n),但在最坏情况下,即关键字基本排好序的情况下,时间复杂度为O(n2)。

(7)若一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。

A.38,40,46,56,79,84B.40,38,46,79,56,84C.40,38,46,56,79,84D.40,38,46,84,56,79答案:C(8)下列关键字序列中,()是堆。

数据结构习题及答案 (1)

数据结构习题及答案 (1)

第八章查找一、判断题1.用二分查找法对一个顺序表进行查找,这个顺序表可以是按各键值排好序的,也可以是没有按键值排好序的。

()2.哈希表的查找不用进行关键字的比较。

()3.哈希表的定义函数H(key)=key%p(p<=m)这种方法是直接定址法。

()4.装填因子α的值越大,就越不容易发生冲突。

( )5.选择hash函数的标准为:随机性好、均匀性好和尽量避免冲突。

( )参考答案:1、×2、×3、×4、×5、√二、填空题1.顺序查找法的平均查找长度为__________,二分查找法的平均查找长度为________,分块查找法(以顺序查找确定块)的平均查找长度为__________,分块查找法(以二分查找确定块〉的平均查找长度为_________,哈希表查找法采用链接法处理冲突时的平均查找长度为_________。

(n+1)/2;((n+1)*log2(n+1))/n-1;(s2+2s+n)/2s;log2(n/s+1)+s/2;1+α2.在各种查找方法中,平均查找长度与结点个数n无关的查法方法是_________哈希表查找3.二分查找的存储结构仅限于_________,且是__________。

顺序;有序的4.在分块查找方法中,首先查找__________,然后再查找相应的___________。

索引;块5.长度为255的表,采用分块查找法,每块的最佳长度是____________。

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

小于表长的最大素数7.假设在有序线性表A[1..20]上进行二分查找,则比较一次查找成功的结点数为_________,则比较二次查找成功的结点数为__________,则比较三次查找成功的结点数为_________,则比较四次查找成功的结点数为________,则比较五次查找成功的结点数为_________,平均查找长度为_________。

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

《数据结构》第八章习题参考答案 (1)
邻接表表示时:无向图的任意顶点的度=顶点所对应边结点链表中结点个数;
有向图的任意顶点的度=邻接表中顶点所对应边链表中结点个数+逆邻接表中顶点所对应边链表中结点个数;
4、课本P3928.3题
【解答】
n个顶点的无向连通图至少有n-1条边,n个பைடு நூலகம்点的无向强连通图至少有n(n-1)/2条边;n个顶点的有向连通图至少有n条边,n个顶点的有向强连通图至少有n(n-1)条边。
上面不正确的是(A)。
A.(1),(2),(3) B.(1) C.(1),(3) D.(2),(3)
5、下列说法不正确的是(C)。
A.图的遍历是从给定的源点出发每一个顶点仅被访问一次
B.遍历的基本算法有两种:深度遍历和广度遍历
C.图的深度遍历不适用于有向图
D.图的深度遍历是一个递归过程
三、填空题
1、判断一个无向图是一棵树的条件是_有n个顶点,n-1条边的无向连通图_。
注: 答案并不唯一
2、课本P3928.1题
【解答】
(1)不是强连通图
(2)简单路径如:D->B->C->F
(3)略
(4)邻接表见图,其他略
3、课本P3928.2题
【解答】
(1)邻接矩阵表示:无向图的边数为
矩阵中非零元素的个数/2;有向图的边数为矩阵中非零元素的个数。
邻接表表示时:无向图的边数为邻接表中边结点的个数/2;有向图的边数为邻接表中边结点的个数。
(2)(3)略
12、课本P3958.24题
【解答】
A->B : 10
A->B->D: 15
A->B->D->C : 17
A->B->D->E : 17

数据结构(第二版)习题答案第8章

数据结构(第二版)习题答案第8章
(2)500个。
(3)9个顶点。
8.5图8.35所示的是某个无向图的邻接表,试:
(1)画出此图;
(2)写出从顶点A开始的DFS遍历结果;
(3)写出从顶点A开始的BFS遍历结果。
【答】:
(1)图8.35邻接表对应的无向图如图8.35.1所示。
图8.35.1
图8.35题8.5的邻接表
(2)从顶点A开始的DFS遍历结果是:A,B,C,F,E,G,D
活动e
l
l-e关键活动
v0
v1
v2
v3
v4
v5
0
6
4
13
22
25
0
6
5
13
22
25
a0
a1
a2
a3
a4
a5
a6
a7
0
0
6
4
4
13
13
22
0
1
6
5
5
13
15
22
0
1
0
1
1
0
2
0




可见,该AOE网的关键路径是a0,a2,a5,a7。(注:图中箭头指示求解的顺序)
8.12无向图采用邻接表作为存储结构,试写出以下算法
量,这样T’的边数将大于n-1)。这与T’是一棵树的假设
相矛盾。证毕。
8.8对如图8.36所示的连通图,分别用Prim和Kruskal
算法构造其最小生成树。
【答】:
(1)采用Prim算法求解最小生成树的过程如图8.36.1
所示。
图8.36无向连通网
79
C
2
A

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

(完整版)数据结构与算法第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【分析】选择排序在最好、最坏、平均情况下的时间性能均为O(n2),归并排序在最好、最坏、平均情况下的时间性能均为O(nlog2n)。

⑵下列序列中,()是执行第一趟快速排序的结果。

A [da,ax,eb,de,bb] ff [ha,gc]B [cd,eb,ax,da] ff [ha,gc,bb]C [gc,ax,eb,cd,bb] ff [da,ha]D [ax,bb,cd,da] ff [eb,gc,ha]【解答】A【分析】此题需要按字典序比较,前半区间中的所有元素都应小于ff,后半区间中的所有元素都应大于ff。

数据结构第八章习题答案

数据结构第八章习题答案

第八章查找1.若为大小均为n的有序的顺序表和无序的顺序表分别进行顺序查找,试在下列三种情况下分别讨论两者在等概率时的平均查找长度是否相同?(1)查找不成功,即表中没有关键字等于给定值K的记录;(2)查找成功,且表中只有一个关键字等于给定值K的记录;(3)查找成功,且表中有若干个关键字等于给定值K的记录,一次查找要求找出所有记录。

此时平均查找长度应考虑找到所有记录时所用的比较次数。

【解答】在已知的有序表进行顺序排序,可对顺序查找算法进行改进。

(1)不相同;(2)相同;(3)不相同。

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

【解答】等概率时查找成功的平均查找长度=(1+2*2+3*4+4*3)/10=2.93.已知下列长度为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/74.在地址空间为0~16的散列区中,自己构造哈希函数,对以下关键字序列构造哈希表:(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)(1)用线性探测开放定址法处理冲突;(2)用链地址法处理冲突。

并分别求这两个哈希表在等概率情况下查找成功和不成功的平均查找长度。

【解答】略。

数据结构周颜军第八章课后答案

数据结构周颜军第八章课后答案

数据结构周颜军第八章课后答案1、病毒防火墙与网络防火墙的作用是()[单选题] *A.一样的,安装一个就行B.一样的,但安装两个更好C.不一样的,最好两者都有(正确答案)D.不一样的,病毒防火墙更重要2、83.根据Internet的域名代码规定,域名中的表示商业组织的网站()。

[单选题] *A.,netB.,com(正确答案)D.,org3、KB=()B。

[单选题] *A.B.C. (正确答案)4、91.若网络的各个节点均连接到同一条通信线路上,且线路两端有防止信号反射的装置,这种拓扑结构称为()[单选题] *A.总线型拓扑(正确答案)B.星型拓扑C.树型拓扑D.环型拓扑5、74.局域网中,提供并管理共享资源的计算机称为()。

[单选题] *A.网桥B.网关C.服务器(正确答案)D.工作站6、A:打印机B:显示器C:鼠标器(正确答案)D:绘图仪显示器的主要技术指标之一是______。

[单选题] *7、99.计算机有多种技术指标,其中主频是指()。

[单选题] *A.内存的时钟频率B.CPU内核工作的时钟频率(正确答案)C.系统时钟频率,也叫外频D.总线频率8、计算机的性能主要决定于()。

[单选题] *A.内存容量B.磁盘容量C.CPU型号(正确答案)D.价格高低9、要在幻灯片中设置“标尺”的显示/隐藏属性,应选择()选项卡。

[单选题] *A. 插入B. 开始C. 设计10、当TCP 客户进程与TCP 服务器进程建立连接时,TCP 报文段首部中的()字段置。

易[单选题] *A.URGB.ACKC.SYN(正确答案)D.FIN11、WPS演示文稿提供了多种(),它包含了相应的配色方案母版和字体样式等,可供用户快速生成风格统一的演示文稿。

[单选题] *A.新幻灯片B.模板(正确答案)C.配色方案12、下列MAC 地址正确的是()。

中[单选题] *A.--B-F--BA(正确答案)B....C.----D.--B-A--H13、下列不能用作存储容量单位的是______。

数据结构 第八章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构 第八章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构第八章测验一、单选题 (共100.00分)1. 以下属于静态查找的算法是()A. 二叉排序树B. 折半查找C. B+树D. 键树正确答案:B2. 在哈希查找中,不同关键字却有着相同的哈希地址,这种现象称为()A. 哈希地址B. 散列地址C. 哈希冲突D. 地址探测正确答案:C3. 以下描述正确的是()A. 顺序查找要求数据必须有序B. 折半查找必须使用顺序表C. 顺序查找必须从头开始查找D. 分块查找允许数据完全无序正确答案:B4. 已知数据序列为33、66、22、44,把该序列依次插入到初始为空的二叉排序树中。

现插入新数据35,它将是()A. 22的右孩子B. 33的右孩子C. 44的左孩子D. 66的左孩子正确答案:C5. 以下关于平衡二叉树描述错误的是()A. 平衡二叉树不是二叉排序树B. 平衡二叉树属于动态查找C. 平衡因子的绝对值不能超过1D. 当出现不平衡情况时需要做平衡化处理正确答案:A6. 二叉排序树查找中,哪种数据序列的时间复杂度最差()A. 递增序列B. 递减序列C. 前半递增后半递减D. 与排列无关正确答案:C7. 以下不属于哈希函数设计方法的是()A. 数字分析法B. 除留余数法C. 折叠法D. 链地址法正确答案:D8. 以下属于哈希冲突处理方法的是()A. 直接定址法B. 再哈希法C. 平衡二叉树D. 平方取中正确答案:B9. 已知序列19,01,23,14,55,68,11,82,36,哈希函数H(key)=key MOD 11,哈希冲突处理采用线性探测再散列,哈希表长11,地址从0开始,则68在哈希表的位置是()A. 1B. 2C. 3D. 4正确答案:D10. 给定关键字集合33、15、88、31、28、64、44、58、77,哈希函数H(key)=key MOD 13 ,采用链地址法(表头插入),数组下标5的单链表中包含关键字依次是()A. 44、31B. 31、44C. 58、64D. 33、77正确答案:A。

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

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

第八章排序(参考答案)本章所用数据结构#define N 待排序记录的个数typedef struct{ int key;ElemType other;}rectype;rectype r[n+1]; // r为结构体数组8.2稳定排序有:直接插入排序、起泡排序、归并排序、基数排序不稳定排序有:希尔排序、直接选择排序、堆排序希尔排序例:49,38,49,90,70,25直接选择排序例:2,2,1堆排序例:1,2,28.3void StlinkedInsertSort(s , n);// 对静态链表s[1..n]进行表插入排序,并调整结果,使表物理上排序{ #define MAXINT 机器最大整数typedef struct{ int key;int next;}rec;rec s[n+1]; // s为结构体数组s[0].key=maxint; s[1].next=0; //头结点和第一个记录组成循环链表i=2; //从第2个元素开始,依次插入有序链表中while (i<=n){q=0; p=s[0].next; // p指向当前最小元素,q是p的前驱while (p!=0 && s[p].key<s[i].key) // 查找插入位置{ q=p; p=s[p].next; }s[i].next=p; s[q].next=i; // 将第个元素链入i++;} // while(i<=n) 静态链表的插入// 以下是重排静态链表,使之物理有序i=1; p=s[0].next;while (i<=n){WHILE (p<i) p=s[p].next;q=s[p].next;if (i!=p){ s[i] s[p]; s[i].next=p;p=q;i++;}}}//算法结束8.4void TwoWayBubbleSort( rectype r[n+1]; int n)// 对r[1..n]进行双向冒泡排序。

数据结构图,查找,内排序的练习及答案

数据结构图,查找,内排序的练习及答案

数据结构图,查找,内排序的练习及答案数据结构课后练习习题要求:此次练习不要求上交,只是帮助⼤家掌握知识点,便于复习。

第⼋章图⼀.单项选择题(20分)1. 带权有向图G ⽤邻接矩阵A 存储,则Vi 的⼊度等于A 中___D______A. 第i ⾏⾮∞的元素只和B. 第i 列⾮∞的元素之和C. 第i ⾏⾮∞且⾮0的元素之和D. 第i 列⾮∞且⾮0的元素个数2. ⽆向图的邻接矩阵是⼀个___A____A. 对称矩阵B. 零矩阵C. 上三⾓阵D. 对⾓矩阵3. 在⼀个⽆向图中,所有顶点的度之和等于边数的__C____倍A. 1/2B. 1C. 2D. 44. ⼀个有n 个顶点的⽆向图最多有___C____条边。

A. nB. n(n-1)C. n(n-1)/2D.2n5. 对于⼀个具有n 个顶点的⽆向图,若采⽤邻接矩阵表⽰,则该矩阵⼤⼩是__D_____A. nB. 2)1(?nC. n-1D. 2n6. ⼀个有向图G 的邻接表存储如右图所⽰,现按深度优先搜索遍历,从V1出发,所得到的顶点序列是___B_____。

A. 1,2,3,4,5B. 1,2,3,5,4C. 1,2,4,5,3D. 1,2,5,3,47. 对右图所⽰的⽆向图,从顶点V1开始进⾏深度优先遍历,可得到顶点访问序列__A______(提⽰:可先画出邻居表图再遍历)A. 1 2 4 3 5 7 6B. 1 2 4 3 5 6 7C. 1 2 4 5 6 3 7D. 1 2 3 4 5 6 78. 如果从⽆向图的任⼀顶点出发进⾏⼀次深度优先搜索即可访问所有顶点,则该图⼀定是__B_____A. 完全图B. 连通图C.有回路D. ⼀棵树9. 任何⼀个⽆向连通图___B___最⼩⽣成树(提⽰:注意最⼩⽣成树的定义,此题易错)A. 只有⼀棵B. ⼀棵或多棵C. ⼀定有多棵D.可能不存在11. 若图的邻接矩阵中主对⾓线上的元素全是0,其余元素全是1,则可以断定该图⼀定是_D_____。

数据结构练习第八章-查找

数据结构练习第八章-查找

数据结构练习第八章查找1.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为< >A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,32.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为〔〕.A.O<1>B. O<log2n>C.O<n>D.O<n2>3.在二叉排序树中插入一个结点的时间复杂度为〔〕.A.O<1>B.O<n>C. O<log2n> D.O<n2>4.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过〔〕.A. log2n+1B. log2n-1C. log2n D. log2<n+1>5.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较〔〕次.A. 25B.10C. 7D. 16.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为〔〕.A. O<n>B. O<n2>C. O<n1/2>D. O<1og2n>7.设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为〔〕.A. O<n>B. O<n2>C. O<nlog2n> D. O<1og2n>8.〔〕二叉排序树可以得到一个从小到大的有序序列.A. 先序遍历B.中序遍历C. 后序遍历D. 层次遍历9.设一组初始记录关键字序列为<13,18,24,35,47,50,62,83,90,115,134>,则利用二分法查找关键字90需要比较的关键字个数为〔〕.A. 1B.2C. 3D. 410.设某散列表的长度为100,散列函数H<k>=k % P,则P通常情况下最好选择〔〕.A.99B.97C. 91D. 9311.在二叉排序树中插入一个关键字值的平均时间复杂度为〔〕.A. O<n>B. O<1og2n>C. O<nlog2n>D. O<n2>12.设一个顺序有序表A[1:14]中有14个元素,则采用二分法查找元素A[4]的过程中比较元素的顺序为< >.A. A[1],A[2],A[3],A[4]B.A[1],A[14],A[7],A[4]C.A[7],A[3],A[5],A[4]D. A[7],A[5] ,A[3],A[4]13.设散列表中有m个存储单元,散列函数H<key>= key%p,则p最好选择〔〕.A. 小于等于m的最大奇数B.小于等于m的最大素数C. 小于等于m的最大偶数D. 小于等于m的最大合数14.设顺序表的长度为n,则顺序查找的平均比较次数为〔〕.A. nB. n/2C. <n+1>/2D. <n-1>/215.设有序表中的元素为<13,18,24,35,47,50,62>,则在其中利用二分法查找值为24的元素需要经过〔〕次比较.A. 1B.2C. 3D. 416.设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为〔 〕.A. 6B.11C. 5 D . 6.517.设有一组初始记录关键字序列为<34,76,45,18,26,54,92>,则由这组记录关键字生成的二叉排序树的深度为〔 〕.A . 4B.5 C. 6 D. 718.二叉排序树中左子树上所有结点的值均〔 〕根结点的值.A .<B.>C.=D.!=19.设有n 个关键字具有相同的Hash 函数值,则用线性探测法把这n 个关键字映射到HASH 表中需要做〔 〕次线性探测.A. n 2B. n<n+1>C. n<n+1>/2 D . n<n-1>/220.用散列函数求元素在散列表中的存储位置时,可能会出现不同的关键字得到相同散列函数值的冲突现象.可用于解决上述问题的是< >A.线性探测法B.除留余数法C.平方取中法D.折叠法21.22.在线性表的散列存储中,若用m 表示散列表的长度,n 表示待散列存储的元素的个数,则装填因子α等于〔 〕.A .n/mB .m/nC .n/<n+m>D .m/<n+m>23.从一棵B_树删除元素的过程中,若最终引起树根结点的合并,则新树高度是〔 〕.A .原树高度加1B .原树高度减1C .原树高度D .不确定24.向二叉搜索树中插入一个元素时,其时间复杂度大致为〔 〕.A.O 〔log 2n 〕 B. O<n>C. O<1> D. 0<nlog 2n>25.5阶B 树中,每个结点最多有〔〕个关键码.A .2B .3C .4D .526.对一棵二叉排序树采用中根遍历进行输出的数据一定是〔 〕A.递增或递减序列B.递减序列C.无序序列D.递增序列27.一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的结点时,查找成功时的比较次数为〔 〕A.1B.2C.4D.828.若构造一棵具有n 个结点的二叉排序树,最坏的情况下其深度不超过< > A. 2n B. n C. 21n + D. n+1 29.闭散列表中由于散列到同一个地址而引起的"堆积〞现象,是< >A.由同义词之间发生冲突引起的B.由非同义词之间发生冲突引起的C.由同义词之间或非同义词之间发生冲突引起的D.由散列表"溢出〞引起的30.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中.这种方式主要适合于< >A.静态查找表B.动态查找表C.静态查找表与动态查找表D.静态查找表或动态查找表31.设一组记录的关键字key值为{62,50,14,28,19,35,47,56,83},散列函数为H<key>=key mod13,则它的开散列表中散列地址为1的链中的结点个数是〔〕A.1B.2 C.3 D.432.已知一个有序表为〔13,18,24,35,47,50,62,83,90,115,134〕,当二分检索值为90的元素时,检索成功需比较的次数是〔〕A.1B.2C.3D.433.闭散列表中由于散列到同一个地址而引起的"堆积〞现象,是由〔〕A.同义词之间发生冲突引起的B.非同义词之间发生冲突引起的C.同义词与非同义词之间发生冲突引起的D.散列地址"溢出〞引起的34.在最坏的情况下,查找成功时二叉排序树的平均查找长度〔〕A.小于顺序表的平均查找长度B.大于顺序表的平均查找长度C.与顺序表的平均查找长度相同D.无法与顺序表的平均查找长度比较35.闭散列表中由于散列到同一个地址而引起的"堆积〞现象,是由〔〕A.同义词之间发生冲突引起的B.非同义词之间发生冲突引起的C.同义词之间或非同义词之间发生冲突引起的D.散列表"溢出〞引起的36.设有100个元素,用二分法查找时,最大比较次数是〔〕.A.25 B.7C.10 D.137.设有1000个元素,用二分法查找时,最小比较次数为〔〕A.0 B.1C.10 D.50038.在一个长度为n的顺序线性表中顺序查找值为x的元素时,查找成功时的平均查找长度〔即x与元素的平均比较次数,假定查找每个元素的概率都相等〕为< >.A.nB. n/2C. <n+1>/2D. <n-1>/239.对有14个数据元素的有序表R[14]进行折半搜索,搜索到R[3]的关键码等于给定值,此时元素比较顺序依次为〔〕.A.R[0],R[1],R[2],R[3] B.R[0],R[13],R[2],R[3] C.R[6],R[2],R[4],R[3] D.R[6],R[4],R[2],R[3] 40.在一个有N个元素的有序单链表中查找具有给定关键字的结点,平均情况下的时间复杂性为< B >A.O<1>B.O<N>C.0〔N2〕D.O<NlogN>41.对线性表进行二分查找时,要求线性表必须〔B〕A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以方式存储D.以方式存储,且数据元素有序42.下列二叉排序树中查找效率最高的是< A >A.平衡二叉树B.二叉查找树C.没有左子树的二叉排序树D.没有右子树的二叉排序树43.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用下列哪一种查找方法.AA. 分块B. 顺序C. 折半D. 哈希44.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是< C >A.<100,80,90,60,120,110,130>B.<100,120,110,130,80,60,90>C.<100,60,80,90, 20,110,130>D.<100,80,60,90,120,130,110>45.下面关于B和B+树的叙述中,不正确的是<C >A. B树和B+树都是平衡的多叉树.B. B树和B+树都可用于文件的索引结构.C. B树和B+树都能有效地支持顺序检索.D. B树和B+树都能有效地支持随机检索.46.m阶B-树是一棵< B >A. m叉排序树B. m叉平衡排序树C. m-1叉平衡排序树D.m+1叉平衡排序树47.在一棵含有n个关键字的m阶B-树中进行查找,至多读盘< C >次.48.一棵3阶B-树中含有2047个关键字,包括叶子结点层,该树的最大深度为< B >.A, 11 B. 12 C. 13 D. 1449.关于杂凑查找说法不正确的有几个< B > 〔1〕采用链地址法解决冲突时,查找一个元素的时间是相同的〔2〕采用链地址法解决冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的〔3〕用链地址法解决冲突易引起聚集现象〔4〕再哈希法不易产生聚集A. 1B. 2C. 3D. 450.设哈希表长M=14,哈希函数H<KEY>=KEY MOD 11.表中已有4个结点:ADDR<15>=4, ADDR<38>=5,ADDR<61>=6,ADDR<84>=7,其余地址为空,如用二次探测再散列处理冲突,关键字为49的结点的地址是< D >.A. 8B. 3C. 5D. 951.散列函数有一个共同的性质,即函数值应当以< D >取其值域的每个值.A. 最大概率B. 最小概率C. 平均概率D. 同等概率52.将10个元素散列到100000个单元的哈希表中,则〔C〕产生冲突.A. 一定会B. 一定不会C. 仍可能会53.长度为10的按关键字有序的查找表采用顺序组织方式.若采用折半查找方法,则在等概率情况下,查找失败时的ASL值是〔D〕A.24/10B.24/11C.39/10D.39/1154.在采用拉链法处理冲突所构成的开散列表上查找某一关键字,在查找成功的情况下,所探测的这些位置上的键值〔A〕A.一定都是同义词B.不一定都是同义词C.都相同D.一定都不是同义词55.二叉查找树的查找效率与二叉树的树型有关, 在 <C >时其查找效率最低.A. 结点太多B. 完全二叉树C. 呈单枝树D. 结点太复杂.56.具有12个关键字的有序表,折半查找的平均查找长度〔A〕A. 3.1B. 4C. 2.5D. 557.哈希查找中k个关键字具有同一哈希值,若用线性探测法将这k个关键字对应的记录存入哈希表中,至少要进行< C >次探测.A. k B. k+1 C. k<k+1>/2 D.1+k<k+1>/258.对线性表进行二分查找时,要求线性表必须〔B〕A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以方式存储D.以方式存储,且数据元素有序59.若查找每个元素的概率相等,则在长度为n 的顺序表上查找任一元素的平均查找长度为< D> .A. nB. n+1C. <n-1>/2D. <n+1>/260.对长度为10 的顺序表进行查找,若查找前面 5 个元素的概率相同,均为1/8 ,查找后面 5 个元素的概率相同,均为3/40 ,则查找任一元素的平均查找长度为< C> .A.5.5B.5C.39/8D.19/461.对长度为3 的顺序表进行查找,若查找第一个元素的概率为1/2 ,查找第二个元素的概率为1/3 ,查找第三个元素的概率为1/6 ,则查找任一元素的平均查找长度为< A> .A .5/3B .2 C. 7/3 D. 4/362.对长度为n 的单链有序表,若查找每个元素的概率相等,则查找任一元素的平均查找长度为< B> .A. n/2 B . <n+1>/2 C. <n-1>/2 D. n/463.对于长度为9 的顺序存储的有序表,若采用二分查找,在等概率情况下的平均查找长度为< A> 的9 分之一.A .20 B. 18 C. 25 D. 2264.对于长度为18 的顺序存储的有序表,若采用二分查找,则查找第15 个元素的查找长度为< B> .A. 3B. 4C. 5D. 665.对于顺序存储的有序表<5,12,20,26,37,42,46,50,64> ,若采用二分查找,则查找元素26 的查找长度为< C> .A .2 B. 3 C. 4 D. 566.对具有n 个元素的有序表采用二分查找,则算法的时间复杂性为< D> .A. O <n>B. O <n 2 >C. O <1>D. O <log 2 n>67.在索引查找中,若用于保存数据元素的主表的长度为n ,它被均分为k 个子表,每个子表的长度均为n/k ,则索引查找的平均查找长度为< D> .A. n+kB. k+n/kC. <k+n/k>/2D. <k+n/k>/2+168.在索引查找中,若用于保存数据元素的主表的长度为n ,它被均分为若干个子表,每个子表的长度均为s ,则索引查找的平均查找长度为< B > .A. <n+s>/2B. <n/s+s>/2+1C. <n+s>/2+1 D . <n/s+s>/269.在索引查找中,若用于保存数据元素的主表的长度为144 ,它被均分为12 子表,每个子表的长度均为12 ,则索引查找的平均查找长度为< A> .A .13 B. 24 C. 12 D. 7970.在索引查找中,若用于保存数据元素的主表的长度为117 ,它被均分为9 子表,则索引查找的平均查找长度为< B> .A. 11B. 12 C .13 D. 971.在一棵深度为h 的具有n 个元素的二叉排序树中,查找所有元素的最长查找长度为< D> .A. nB. log 2 nC. <h+1>/2D.h72.从具有n 个结点的二叉搜索树中查找一个元素时,在平均情况下的时间复杂性大致为< C> .A. O <n>B. O <1>C. O <log 2 n>D. O <n 2 >73.从具有n 个结点的二叉搜索树中查找一个元素时,在最坏情况下的时间复杂性为< A> .A. O <n>B. O <1>C. O <log 2 n>D. O <n 2 >74.向具有n 个结点的二叉搜索树中插入一个元素时,其时间复杂性大致为< B > .A. O <1> B .O <log 2 n > C. O <n> D. O < n log 2n >75.根据n 个元素建立一棵二叉搜索树时,其时间复杂性大致为< D> .A. O <n> B .O <log 2 n > C. O <n 2 > D .O < n log 2n >76.在一棵平衡二叉排序树中,每个结点的平衡因子的取值范围是< A> .A .-1 ~ 1 B. -2 ~ 2 C. 1 ~ 2 D. 0 ~ 177.若根据查找表<23,44,36,48,52,73,64,58> 建立开散列表,采用h<K>=K%13 计算散列地址,则元素64 的散列地址为< C> .A. 4B. 8C. 12D. 1378.若根据查找表<23,44,36,48,52,73,64,58> 建立开散列表,采用h<K>=K%7 计算散列地址,则散列地址等于 3 的元素个数< B> .A.1 B .2 C. 3 D. 479.若根据查找表<23,44,36,48,52,73,64,58> 建立开散列表,采用h<K>=K%7 计算散列地址,则同义词元素个数最多为< C> .A. 1B. 2C. 3D. 480.若根据查找表建立长度为m 的闭散列表,采用线性探测法处理冲突,假定对一个元素第一次计算的散列地址为 d ,则下一次的散列地址为<D> .A. dB. d+1C. <d+1>/mD. <d+1>%m81.若根据查找表建立长度为m 的闭散列表,采用二次探测法处理冲突,假定对一个元素第一次计算的散列地址为 d ,则第四次计算的散列地址为< C> .A. <d+1>%mB. <d-1>%m C . <d+4>%m D. <d-4>%m82.在采用线性探测法处理冲突的闭散列表上,假定装填因子 a 的值为0.5 ,则查找任一元素的平均查找长度为<B> .A. 1B. 1.5C. 2 D .2.583.在采用法处理冲突的开散列表上,假定装填因子 a 的值为 4 ,则查找任一元素的平均查找长度为< A> .A. 3B. 3.5C. 4D. 2.584.在散列查找中,平均查找长度主要与< C> 有关.A.散列表长度B.散列元素的个数C.装填因子D.处理冲突方法85.对顺序表进行二分查找时,要求顺序表必须:A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以方式存储D.以方式存储,且数据元素有序[解答]B86.下列二叉排序树中查找效率最高的是:A.平衡二叉树B.二叉查找树C.没有左子树的二叉排序树D.没有右子树的二叉排序树[解答]A二、填空题1.假定一个线性表为<12,23,74,55,63,40>,若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_____________、___________、________和___________.〔12,40〕,〔〕,〔74〕,〔23,55,63〕2.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________.增加13. 为了能有效地应用HASH查找技术,必须解决的两个问题是________________和_____________________.构造一个好的HASH函数,确定解决冲突的方法4.设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较________次就可以断定数据元素X是否在查找表中.75.下列算法实现在顺序散列表中查找值为x的关键字,请在下划线处填上正确的语句.struct record{int key; int others;};int hashsqsearch<struct record hashtable[ ],int k>{int i,j; j=i=k % p;while <hashtable[j].key!=k&&hashtable[j].flag!=0>{j=<____> %m; if <i==j> return<-1>;}if <_______________________ > return<j>; else return<-1>;} j+1,hashtable[j].key==k6.下列算法实现在二叉排序树上查找关键值k,请在下划线处填上正确的语句.typedef struct node{int key; struct node *lchild; struct node *rchild;}bitree;bitree *bstsearch<bitree *t, int k>{if <t==0 > return<0>;else while <t!=0>if <t->key==k>_____________;else if <t->key>k> t=t->lchild;else_____________;} return<t>,t=t->rchild7.根据初始关键字序列<19,22,01,38,10>建立的二叉排序树的高度为____________.38.设散列函数H<k>=k mod p,解决冲突的方法为链地址法.要求在下列算法划线处填上正确的语句完成在散列表hashtalbe中查找关键字值等于k的结点,成功时返回指向关键字的指针,不成功时返回标志0.typedef struct node {int key; struct node *next;} lklist;void createlkhash<lklist *hashtable[ ]>{int i,k; lklist *s;for<i=0;i<m;i++>_____________________;for<i=0;i<n;i++>{s=<lklist *>malloc<sizeof<lklist>>; s->key=a[i];k=a[i] % p; s->next=hashtable[k];_______________________;}}hashtable[i]=0,hashtable[k]=s9.下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句.struct record{int key; int others;};int bisearch<struct record r[ ], int k>{int low=0,mid,high=n-1;while<low<=high>{________________________________;if<r[mid].key==k> return<mid+1>;else if<____________> high=mid-1;else low=mid+1;}return<0>;} mid=<low+high>/2,r[mid].key>k10.设需要对5个不同的记录关键字进行排序,则至少需要比较_____________次,至多需要比较_____________次.4,1011.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个.1,212.设二叉排序树的高度为h,则在该树中查找关键字key 最多需要比较_________次.h13.设散列表的长度为8,散列函数H<k>=k %7,用线性探测法解决冲突,则根据一组初始关键字序列<8,15,16,22,30,32>构造出的散列表的平均查找长度是________.8/314.设一组初始记录关键字序列为<20,12,42,31,18,14,28>,则根据这些记录关键字构造的二叉排序树的平均查找长度是_______________________________.19/715.下面程序段的功能是实现在二叉排序树中插入一个新结点,请在下划线处填上正确的内容.typedef struct node{int data;struct node *lchild;struct node *rchild;}bitree;void bstinsert<bitree *&t,int k>{if<t==0>{____________________________;t->data=k;t->lchild=t->rchild=0;} else if <t->data>k> bstinsert<t->lchild,k>;else__________________________;} t=<bitree *>malloc<sizeof<bitree>>,bstinsert<t->rchild,k>16.解决散列表冲突的两种方法是________________和__________________.开放定址法,链地址法17.在一棵m 阶B_树上,每个非树根结点的关键字数目最少为_______个,最多为_____个,其子树数目最少为______,最多为____.⎡⎤12/-m 、m-1 、⎡⎤2/m 、 m18.从一棵二叉搜索树中查找一个元素时,若元素的值等于根结点的值,则表明_______,若元素的值小于根结点的值,则继续向________查找,若元素的大于根结点的值,则继续向________查找.查找成功、左子树、右子树19.对于二分查找所对应的判定树,它既是一棵_____,又是一棵__________.二叉搜索树、理想平衡树20.二叉搜索树的中序遍历得到的结点序列为________. 有序序列21.从有序表〔12,18,30,43,56,78,82,95〕中依次二分查找43和56元素时,其查找长度分别为___________和__________.1 , 322.假定对长度n=144的线性表进行索引查找,并假定每个子表的长度均为n,则进行索引查找的平均查找长度为__________,时间复杂度为___________.13, O<n>23.一棵B-树中的所有叶子结点均处在_____________上.同一层24.每次从无序表中顺序取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做_______排序;每次从无序表中挑选出一个最大或最小元素,把它交换到有序表中的一端,此种排序方法叫做_________排序.插入选择25.对于线性表〔18,25,63,50,41,32,90,66〕进行散列存储时,若选用H〔K〕=K%11作为散列函数,则散列地址为0的元素有______个,散列地址为3的元素有______个,散列地址为8的元素有______个.1 1 226.在一个具有n个结点的单链表中查找值为m的某结点,若查找成功,则需平均比较的结点数为____<n+1>/2________.27.在一棵二叉排序树上按_____中序_______遍历得到的结点序列是一个有序序列.28.实现二分查找的存储结构仅限于顺序存储结构,且其中元素排列必须是____有序的.29.设顺序表的表长为n,且查找每个元素的概率相等,则采用顺序查找法查找表中任一元素,在查找成功时的平均查找长度为___<n+1>/2_______.30.在索引顺序表上的查找分两个阶段:一是查找_____索引表_____,二是查找块.31.一棵平衡二叉树中任一结点的平衡因子只可能是__-1,0,1_____.n>_____.32.二分查找的时间复杂度为__O<log233.查找表的数据结构有别于线性表、树型结构等,其逻辑结构为____集合______.34.长度为L的顺序表,采用设置岗哨方式顺序查找,若查找不成功,其查找长度为__L+1_______.35.在开散列表上查找某元素时,通常分两步进行,首先必须计算该键值的散列地址,然后在地址指针所指_________同义词子表_______中查找该结点.36.对二叉排序树进行__中序______遍历,可得到排好序的递增结点序列. 37.采用折半查找方法进行查找的数据序列应为____顺序存储____且___有序_____.38.查找表的逻辑组织结构实际上是____集合____________结构.39.对于具有n个元素的数据序列,采用顺序查找法,其平均查找长度为____<n+1>/2______.40.快速排序算法在最差的情况下其时间复杂度是.O<n2>41.在线性表的________存储中,对每一个元素只能采用顺序查找.链式42.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为________________.〔n+1〕/243.以顺序查找方法从长度为n的线性表中查找一个元素时,平均查找长度为________,时间复杂度为________.<n+1>/2、O<n>44.以二分查找方法从长度为n的线性有序表中查找一个元素时,平均查找长度小于等于________,时间复杂度为________.O<log2n>45.以二分查找方法从长度为12的有序表中查找一个元素时,平均查找长度为________.37/1246.以二分查找方法查找一个线性表时,此线性表必须是________存储的________表.顺序、有序47.从有序表<12,18,30,43,56,78,82,95>中依次二分查找43和56元素时,其查找长度分别为________和________.1、348.对于二分查找所对应的判定树,它既是一棵_______,又是一棵________.二叉搜索树、理想平衡树49.假定对长度n=50的有序表进行二分查找,则对应的判定树高度为________,判定树中前5层的结点数为________,最后一层的结点数为________.6、31、19 50.在索引表中,每个索引项至少包含有________域和________域这两项.索引、开始地址51.假定一个线性表为<12,23,74,55,63,40,82,36>,若按Key % 3条件进行划分,使得同一余数的元素成为一个子表,则得到的三个子表分别为________、________和________.<12,63,36>、<55,40,82>、<23,74>52.假定一个线性表为<〞abcd〞,〞baabd〞,〞bcef〞,〞cfg〞,〞ahij〞,〞bkwte〞,〞ccdt〞,〞aayb〞>,若按照字符串的第一个字母进行划分,使得同一个字母被划分在一个子表中,则得到的a,b,c三个子表的长度分别为________、________和________.3、3、253.在线性表的________存储中,无法查找到一个元素的前驱或后继元素.散列54.在线性表的________存储中,对每一个元素只能采用顺序查找.55.假定对线性表<38,25,74,52,48>进行散列存储,采用H<K>=K % 7作为散列函数,若分别采用线性探查法和法处理冲突,则对各自散列表进行查找的平均查找长度分别为_______和________.2、7/556.假定要对长度n=100的线性表进行散列存储,并采用法处理冲突,则对于长度m=20的散列表,每个散列地址的单链表的长度平均为________.557.在线性表的散列存储中,处理冲突有________和________两种方法.开放定址、58.对于线性表<18,25,63,50,42,32,90>进行散列存储时,若选用H<K>=K % 9作为散列函数,则散列地址为0的元素有________个,散列地址为5的元素有________个.3、259.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为_________,整个堆排序过程的时间复杂度为________________.O〔log2n〕、O<nlog2n>;60.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为__ __次;当使用监视哨时,若查找失败,则比较关键字的次数为__ __.n n+161.在各种查找方法中,平均查找长度与结点个数n无关的查找方法是.哈希查找62.在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为__________.6,9,11,1263.己知有序表为<12,18,24,35,47,50,62,83,90,115,134>当用二分法查找90时,需__________次查找成功,47时__________成功,查100时,需__________次才能确定不成功.2,4,364.平衡二叉树又称_________,其定义是________.AVL树<高度平衡树,高度平衡的二叉排序树>,或为空二叉树,或二叉树中任意结点左子树高度与右子树高度差的绝对值小于等于1.65.在哈希函数H〔key〕=key%p中,p值最好取_________.小于等于表长的最大素数或不包含小于20的质因子的合数66.有一个2000项的表,欲采用等分区间顺序查找方法进行查找,则每块的理想长度是__<1>___,分成__<2>___块最为理想,平均查找长度是__<3>___.<1>45 <2>45 <3>46<块内顺序查找>67.假定有k个关键字互为同义词,若用线性探测再散列法把这k个关键字存入散列表中,至少要进行__________次探测.k<k+1>/268.查找是非数值程序设计的一个重要技术问题,基本上分成__<1>__查找,__<2>__查找和__<3>__查找.处理哈希冲突的方法有__<4>__、__<5>__、__<6>__和__<7>__.<1>顺序表 <2>树表 <3>哈希表 <4>开放定址方法<1><5>链地址方法 <6>再哈希 <7>建立公共溢出区69.在含有n个结点的二叉排序树中查找一个关键字,进行关键字比较次数最大值是.n70.一棵深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有个结点.2k-171.假定查找有序表A[1..12]中每个元素的概率相等,则进行二分查找时的平均查找长度为__________ 37/1272.动态查找表和静态查找表的重要区别在于前者包含有__________和__________运算,而后者不包含这两种运算.插入删除73.对于具有144 个记录的文件,若采用分块查找法,且每块长度为8,则平均查找长度为__________. 1474.以顺序查找方法从长度为n 的顺序表或单链表中查找一个元素时,平均查找长度为________ ,时间复杂性为________ .<n+1>/2 O<n>75.假定一个顺序表的长度为40 ,并假定查找每个元素的概率都相同,则在查找成功情况下的平均查找长度________ ,在查找不成功情况下的平均查找长度________ .20.5 4176.以二分查找方法从长度为50 的有序表中查找一个元素时,其查找长度不超过________ .677.以二分查找方法在一个查找表上进行查找时,该查找表必须组织成________ 存储的________ 表.顺序有序78.从有序表<12,18,30,43,56,78,82,95> 中分别二分查找43 和56 元素时,其查找长度分别为________ 和________ .1 379.二分查找所对应的判定树,既是一棵_______ ,又是一棵________ .二叉排序。

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

《数据结构》第八章习题参考答案 (1)
《数据结构》第八章习题参考答案
一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”)
1、用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关。(×)
2、有e条边的无向图,在邻接表中有e个结点。(×)
3、强连通图的各顶点间均可达。(√)
4、无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵。(×)
注: 答案并不唯一
2、课本P3928.1题
【解答】
(1)不是强连通图
(2)简单路径如:D->B->C->F
(3)略
(4)邻接表见图,其他略
3、课本P3928.2题
【解答】
(1)邻接矩阵表示:无向图的边数为
矩阵中非零元素的个数/2;有向图的边数为矩阵中非零元素的个数。
邻接表表示时:无向图的边数为邻接表中边结点的个数/2;有向图的边数为邻接表中边结点的个数。
5、课本P3928.4题
【解答】
用邻接矩阵表示图,矩阵元素的个数是顶点个数的平方,与边的条数无关。矩阵中非零元素的个数与边的条数有关。
6、课本P3928.5题
【解答】
一个图中有1000个顶点,其邻接矩阵中的矩阵元素有10002= 1000000个。它有1000个非零元素(对于有向图)或2000个非零元素(对于无向图),是稀疏矩阵。
(2)邻接矩阵表示:顶点i和j是否有边只需看i行j列(或j行i列)矩阵元素是否非零;
邻接表表示时:看i顶点(或j顶点)的边结点链表中是否存在地址指向j顶点(或i顶点)的结点。
(3)邻接矩阵表示:无向图的任意顶点的度=顶点所对应行(或列)的非零矩阵元素个数。
有向图的任意顶点的度=顶点所对应行和对应列的非零矩阵元素个数之和。

(精选)北大PKU 慕课 EDX 数据结构与算法 第八章图 quiz答案与解析

(精选)北大PKU 慕课 EDX 数据结构与算法 第八章图 quiz答案与解析

第八章图PROBLEM 1(1/1 分)下图中的强连通分量的个数为多少个?How many strongly connected graphs in the under graph?33 - 正确33Explanation有向图强连通的极大子图称为该有向图的强连通分支或者强连通分量。

分别为最左边1个点组成的极大子图,中间4个点组成的极大子图和最右边1个点组成的极大子图。

分别为最左边1个点,中间4个点和最右边1个点。

Maximal strongly connected subgraphs of a directed graph are called strongly connected components of this directed graph.They are the subgraph consist of the left-most vertex, the subgraph consist of 4 vertices in the middle, ,and the subgraph consist of the right-most vertex respectively.PROBLEM 2(1/1 分)下面关于图的说法正确的有 (多选)The right statements of graphs in the following are: (There are more than one correct answers)对于无向图,所有结点的度数加起来一定是偶数。

As for undirected graphs, the sum of degrees of all vertices is definitely even number., 将有向图的一个强连通分量中的边全部反向仍然是强连通分量。

Reversion all the edges of a strongly connected component of a directed graph, then the subgraph is still a strongly connected component., - 正确对于无向图,所有结点的度数加起来一定是偶数。

数据结构第8章作业参考答案

数据结构第8章作业参考答案

第8章内部排序一、单项选择题1.在下列排序算法中,(D )算法的时间复杂度与初始顺序无关。

A. 直接插入排序B. 冒泡排序C. 快速排序D. 直接选择排序2.已知原始关键字序列(56,23,78,92,88,67,19,34),若一趟排序之后序列是(19,23,67,56,34,78,92,88),则选用的排序方法是进行的结果为( B )。

A.简单选择排序B. 增量为3的一趟希尔排序C..冒泡排序D. 快速排序3.快速排序的平均时间复杂度为(D )。

A. O(n)B. O(log2n)C. O(n2)D. O(nlog2n)4.用直接插入排序法对下面四个序列进行升序排序,元素比较次数最少的是(C )。

A. 94,32,40,90,80,46,21,69B. 32,40,21,46,69,94,90,80C. 21,32,46,40,80,69,90,94D. 90,69,80,46,21,32,94,405.下列排序算法中,不稳定的是(B )。

A. 直接插入排序B. 简单选择排序C. 起泡排序D. 归并排序6.下列排序算法中,第一趟排序结束后,其最大或最小元素一定在其最终位置上的算法是( D )。

A. 归并排序B. 直接插入排序C. 快速排序D. 冒泡排序7.当待排序序列中记录数较多时,速度最快的排序方法是(A )。

A. 快速排序法B. 冒泡排序法C. 堆排序法D. 归并排序法8.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是(C )排序。

A. 冒泡B. 希尔C. 快速D. 堆9.对于键值序列{72,73,71,23,94,16,5,68,76,103},用筛选法建堆,必须从键值为(D )的结点开始。

A. 23B. 103C. 72D. 9410.下列排序算法中,在最好情况下,时间复杂度为O(n)的算法是(B )。

A. 简单选择排序B. 起泡排序C. 快速排序D. 归并排序11.对序列(22,86,19,49,12,30,65,35,18)进行一趟排序后得到的结果为(18,12,19,22,49,30,65,35,86),则使用的排序方法是(D )。

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

(完整版)数据结构与算法第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【分析】选择排序在最好、最坏、平均情况下的时间性能均为O(n2),归并排序在最好、最坏、平均情况下的时间性能均为O(nlog2n)。

⑵下列序列中,()是执行第一趟快速排序的结果。

A [da,ax,eb,de,bb] ff [ha,gc]B [cd,eb,ax,da] ff [ha,gc,bb]C [gc,ax,eb,cd,bb] ff [da,ha]D [ax,bb,cd,da] ff [eb,gc,ha]【解答】A【分析】此题需要按字典序比较,前半区间中的所有元素都应小于ff,后半区间中的所有元素都应大于ff。

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

数据结构第八章习题
及答案
习题八查找
一、单项选择题
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的链中有()个记录。

A.1 B. 2 C. 3 D. 4
13. 关于杂凑查找说法不正确的有几个( )
(1)采用链地址法解决冲突时,查找一个元素的时间是相同的
(2)采用链地址法解决冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的
(3)用链地址法解决冲突易引起聚集现象
(4)再哈希法不易产生聚集
A. 1
B. 2
C. 3
D. 4
14. 设哈希表长为14,哈希函数是H(key)=key%11,表中已有数据的关键字为15,38,61,84共四个,现要将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是( )
A.8 B.3 C.5 D.9
15. 将10个元素散列到100000个单元的哈希表中,则()产生冲突。

A. 一定会
B. 一定不会
C. 仍可能会
二、填空题
1. 顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为__ __次;当使用监视哨时,若查找失败,则比较关键字的次数为__ __。

2. 在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键码值20,需做的关键码比较次数为____.
3.一个无序序列可以通过构造一棵_ _ _ _树而变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。

4. 哈希表是通过将查找码按选定的__ __和 __ __,把结点
按查找码转换为地址进行存储的线性表。

哈希方法的关键是_ __和
__ __。

一个好的哈希函数其转换地址应尽可能__ __,而且
函数运算应尽可能__ __。

5. 平衡二叉树又称__________,其定义是_____
_____。

6. 在哈希函数H(key)=key%p中,p值最好取__________。

7.假定有k个关键字互为同义词,若用线性探测再散列法把这k个关键字存入
散列表中,至少要进行__________次探测。

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

9. 动态查找表和静态查找表的重要区别在于前者包含有__________和
__________运算,而后者不包含这两种运算。

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

11. 已知N元整型数组a存放N个学生的成绩,已按由大到小排序,以下算法
是用对分(折半)查找方法统计成绩大于或等于X分的学生人数,请填空使
之完善。

#define N /*学生人数*/
int uprx(int a[N],int x ) /*函数返回大于等于X分的学生人数*/
{ int head=1,mid,rear=N;
do {mid=(head+rear)/2;
if(x<=a[mid]) __(1) __ else __(2)_ _;
}while(__(3)_ _);
if (a[head]<x) return head-1;
return head; }第九章查找
一、单项选择题
1.B
2.C
3.D
4.C
5.B
6.B
7. C C
8.A
9.C
10.B
11.A
12. D
13. B
14. D
15. C
二、填空题
1. n n+1
2. 4
3.二叉排序
4. (1)哈希函数(2)解决冲突的方法 (3)选择好的哈希函数 (4)处理冲突的方法
(5)均匀(6)简单
5. AVL树(高度平衡树,高度平衡的二叉排序树)
或为空二叉树,或二叉树中任意结点左子树高度与右子树高度差的绝对值小于等于1。

6. 小于等于表长的最大素数或不包含小于20的质因子的合数
7.k(k+1)/2
8. 直接定址法
9. 插入删除
10.存取元素时发生冲突的可能性就越大存取元素时发生冲突的可能性就越小
11.(1)rear=mid-1 (2)head=mid+1 (3)head>rear。

相关文档
最新文档