《数据结构》习题汇编08 第八章 查找 试题
《数据结构》吕云翔编著第8章查找习题解答
第8 章查找课后习题解答一、选择题1.已知一个有序表为(12,18,24,35,47,50,62,83,90,115,134),当折半查找值为90的元素时,经过()次比较后查找成功。
A 2B 3C 4D 5【解答】A2.已知10个元素(54,28,16,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序树,查找值为62的结点所需比较次数为()。
A 2B 3C 4D 5【解答】B3.已知数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为()。
A 4B 5C 6D 7【解答】B4.按()遍历二叉排序树得到的序列是一个有序序列。
A 前序B 中序C 后序D 层次【解答】B5一棵高度为h的平衡二叉树,最少含有个结点。
A 2hB 2 h -1C 2 h +1D 2 h -1【解答】D6.在散列函数H(k)= k mod m中,一般来讲,m应取()。
A 奇数B 偶数C 素数D 充分大的数7.静态查找与动态查找的根本区别在于()。
A 它们的逻辑结构不一样B 施加在其上的操作不同C 所包含的数据元素的类型不一样D 存储实现不一样【解答】B【分析】静态查找不涉及插入和删除操作,而动态查找涉及插入和删除操作。
8. 长度为 12的有序表采用顺序存储结构,采用折半查找技术,在等概率情况下,查找成功时的平均查找长度是(),查找失败时的平均查找长度是()。
A 37/12B 62/13C 3 9/12D 49/13【解答】A,B9. 用n个键值构造一棵二叉排序树,其最低高度为()。
A n/2B nC log2nD log2n+1【解答】D【分析】二叉排序树的最低高度与完全二叉树的高度相同10. 二叉排序树中,最小值结点的()。
A 左指针一定为空B 右指针一定为空C 左、右指针均为空D 左、右指针均不为空【解答】A【分析】在二叉排序树中,值最小的结点一定是中序遍历序列中第一个被访问的结点,即二叉树的最左下结点。
数据结构(查找)练习题与答案
1、静态查找表和动态查找表的区别是( )。
A.所包含的数据元素的类型不同B.施加其上的操作不同C.它们的逻辑结构相同D.以上都不对正确答案:B解析:B、若在查找的同时对表做修改操作(如插入和删除),则相应的查找表称之为动态查找表。
若在查找中不涉及表的修改操作,则相应的查找表称之为静态查找表。
2、顺序查找法适合于存储结构为( )的线性表。
A.索引存储B.压缩存储C.顺序存储或者链式存储D.哈希存储正确答案:C解析:C、顺序查找可以从前向后或者从后向前挨次查找,既适合于顺序存储结构也适合于链式存储结构。
3、采用顺序查找方法查找长度为n 的顺序表时,在等概率时成功查找的平均查找长度为( )。
A.(n-1)/2B.nC.n/2D.(n+1)/2正确答案:D解析:D、顺序查找时,元素ai 需i 次比较,成功查找的平均查找长度=(1+2+ …+n)/n=(n+1)/2。
4、采用顺序查找方法查找长度为n 的顺序表时,在等概率时不成功查找的平均查找长度为( )。
A.(n-1)/2B.nC.n/2D.(n+1)/2正确答案:B解析:B、当查找的元素不在线性表中时,均需要n 次元素之间的比较。
5、适合于折半查找的数据组织方式是( )。
A.以链表存储的有序线性表B.以顺序表存储的有序线性表C.以链表存储的线性表D.以顺序表存储的线性表正确答案:B解析:B、折半查找的数据必须是有序的。
此外,折半查找中需要确定查找区间,这要求存储结构最好具有随机存取特性,而顺序表满足这个特性。
6、采用折半查找方法查找长度为n 的线性表,当n 很大时,在等概率时不成功查找的平均查找长度为( )。
n)A. O(nlog2B. O(n2)C. O(n)n)D. O(log2正确答案:D解析:D、采用折半查找时,若n 很大,对应的判定树可以看成是一棵满二叉树,失败节点(外部节点)集中在最下一层,落在每一个失败节点时比较的次都均为log n。
27、设有100 个元素的有序表,采用折半查找方法,在等概率时成功时最大的比较次数是( )。
数据结构第八章习题及答案教学提纲
数据结构第八章习题及答案习题八查找一、单项选择题1.顺序查找法适合于存储结构为()的线性表。
A.散列存储 B. 顺序存储或链式存储C. 压缩存储D. 索引存储2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。
A. (n-1)/2 B. n/2 C. (n+1)/2 D. n3.适用于折半查找的表的存储方式及元素排列要求为( )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棵二叉树,( )是平衡二叉树。
《数据结构》第八章习题参考答案 (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
《数据结构》第08章在线测试
《数据结构》第08章在线测试剩余时间:40:15答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)1、下列方法中,________算法的时间复杂度为O(n^2)。
A、堆排序B、希尔排序C、快速排序D、直接插入排序2、下列方法中,________是稳定的排序方法。
A、堆排序B、希尔排序C、快速排序D、直接插入排序3、在待排序的元素序列基本有序的前提下,效率最高的排序方法是_______。
A、起泡排序B、快速排序C、堆排序D、直接插入排序4、在下列排序方法中,平均情况下占用内存量最大的是_______方法。
A、快速排序B、堆排序C、插入排序D、冒泡排序5、对序列{22,86,19,49,12,30,65,35,18}进行一趟排序后得到的结果为{18,12,19,22,49,30,65,35,86},则其使用的排序方法为_______。
A、插入排序B、选择排序C、快速排序D、起泡排序第二题、多项选择题(每题2分,5道题共10分)1、下列方法中,________算法的时间复杂度为O(n^2)。
A、希尔排序B、冒泡排序C、快速排序D、直接插入排序2、下列方法中,________算法的时间复杂度为O(nlogn)。
A、直接插入排序B、快速排序C、简单选择排序D、堆排序3、下列排序方法中,不稳定的排序方法有________。
A、希尔排序B、快速排序C、堆排序D、直接插入排序E、简单选择排序4、下列序列中,________不是堆。
A、{96,83,27,38,11,9}B、{12,36,24,85,47,30,53,91}C、{49,38,65,97,76,13,27}D、{38,24,15,20,30,46}5、下列序列中,________是堆。
A、{15,30,22,93,52,71}B、{15,22,30,52,71,93}C、{15,52,22,93,30,71}D、{15,52,22,71,30,93}第三题、判断题(每题1分,5道题共5分)1、对一个堆按层次遍历,不一定能得到一个有序序列。
(完整版)数据结构与算法第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)用链地址法处理冲突。
并分别求这两个哈希表在等概率情况下查找成功和不成功的平均查找长度。
【解答】略。
数据结构考试试题库含答案解析
完美 WORD 格式数据结构习题集含答案目录目录1选择题2第一章绪论 .2第二章线性表.4第三章栈和队列.6第四章串.7第五章数组和广义表8第六章树和二叉树8第七章图.11第八章查找.13第九章排序.14简答题19第一章绪论 .19第二章线性表.24第三章栈和队列.26第四章串.28第五章数组和广义表29第六章树和二叉树31第七章图.36第八章查找.38第九章排序.39编程题41第一章绪论 .41第二章线性表.41第三章栈和队列.52第四章串.52第五章数组和广义表52第六章树和二叉树52第七章图.52第八章查找.52第九章排序.57选择题第一章绪论1.数据结构这门学科是针对什么问题而产生的?( A )A、针对非数值计算的程序设计问题B 、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下面选项最准确的是( D )A、研究数据对象和数据之间的关系B 、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学生成绩表中查得X三同学的各科成绩记录,其中数据结构考了 90分,那么下面关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学生成绩表是数据元素,90分是数据项B、某班级的学生成绩表是数据对象,90分是数据元素C、某班级的学生成绩表是数据对象,90分是数据项D、某班级的学生成绩表是数据元素,90分是数据元素4.* 数据结构是指( A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的目的是( C )A、找出数据的合理性B、研究算法中的输入和输出关系C、分析算法效率以求改进D、分析算法的易懂性和文档型性7.算法分析的主要方法( A )。
数据结构第八章习题及答案
习题八查找一、单项选择题1.顺序查找法适合于存储结构为( )的线性表。
A. 散列存储 B、顺序存储或链式存储C、压缩存储D、索引存储2、若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。
A. (n-1)/2 B、 n/2 C、 (n+1)/2 D、 n3.适用于折半查找的表的存储方式及元素排列要求为( )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棵二叉树,( )就是平衡二叉树。
《数据结构》第八章习题参考答案 (1)
【解答】
采用邻接表存储的图的DFS遍历类似于二叉树的先序遍历,BFS遍历类似于二叉树的按层遍历。
10、课本P3928.10题
【解答】
DFS和BFS树都不唯一,
只是给出了一种解答。
11、课本P3938.17题
(1)【解答】
此工程最早完成时间为43。关键路径为<1, 3><3, 2><2, 5><5, 6>
注: 答案并不唯一
2、课本P3928.1题
【解答】
(1)不是强连通图
(2)简单路径如:D->B->C->F
(3)略
(4)邻接表见图,其他略
3、课本P3928.2题
【解答】
(1)邻接矩阵表示:无向图的边数为
矩阵中非零元素的个数/2;有向图的边数为矩阵中非零元素的个数。
邻接表表示时:无向图的边数为邻接表中边结点的个数/2;有向图的边数为邻接表中边结点的个数。
7、对于一个具有n个顶点e条边的无向图的邻接表的表示,则表头向量大小为__n____,邻接表的边结点个数为__2e____。
8、求图的最小生成树有两种算法,_克鲁斯卡尔(Kruskal)_算法适合于求稀疏图的最小生成树。
四、综合题
1、按下图所示,画出它的广度优先生成树和深度优先生成树(A为源点)。
【解答】
邻接表表示时:无向图的任意顶点的度=顶点所对应边结点链表中结点个数;
有向图的任意顶点的度=邻接表中顶点所对应边链表中结点个数+逆邻接表中顶点所对应边链表中结点个数;
4、课本P3928.3题
【解答】
n个顶点的无向连通图至少有n-1条边,n个顶点的无向强连通图至少有n(n-1)/2条边;n个顶点的有向连通图至少有n条边,n个顶点的有向强连通图至少有n(n-1)条边。
数据结构图,查找,内排序的练习及答案
数据结构图,查找,内排序的练习及答案数据结构课后练习习题要求:此次练习不要求上交,只是帮助⼤家掌握知识点,便于复习。
第⼋章图⼀.单项选择题(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.数据是描述客观事物的数、字符以及所有能输入到计算机且能够被计算机程序加工处理的符号集合。
_________是数据的基本单位;___________是数据的最小单位。
通常被计算机加工处理的数据不是孤立无关的,而是彼此之间存在着某种联系,将这种数据间的联系称为________。
2.数据结构进行形式化定义时,可以从逻辑上认为数据结构DS是_________的集合D和D上_________的集合R所构成的二元组:DS=(D,R)。
3.已知某数据结构的二元组形式表示为:A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>}。
则此数据结构属于_____________结构。
4.一个算法的时间复杂度通常用问题规模大小的函数来表示,当一个算法的时间复杂度与问题规模n大小无关时,则表示为__________;成正比关系时,则表示为___________;成对数关系时,则表示为___________;成平方关系时,则表示为__________。
5.数据结构的逻辑结构包括_____________、树型结构和图型结构三种类型,其中树型结构和图型结构合称为_____________;数据结构的存储结构主要包括____________和____________两种类型。
6.线性结构的特点是:第一个结点_______前驱结点,其余结点有且仅有_______个前驱结点;最后一个结点_______后继结点,其余每个结点有且仅有_______个后继结点。
7.树型结构的特点是:根结点没有________结点,其余每个结点有且仅有________个前驱结点;叶子结点_________后继结点,其余结点可以有_________个后继结点。
数据结构第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 )。
中国农业大学_821数据结构_《数据结构》习题(8)
6. 已知长度为 12 的表 ( Jan, Feb, Mar, Apr, May, Jun, July, Aug,, Sep, Oct, Nov, Dec ): (1) 试按表中顺序依次将元素插入一棵初始为空的二叉树。 (字符之间以字典顺序比较 大小) 画出插入完成之后的二叉排序树, 且求在等概率的情况下查找成功的平均查找长度。 (2) 如果对表中元素先排序构成有序表,试求在等概率情况下对有序表进行折半查找 时,查找成功的平均查找长度。 (3) 按表中元素顺序构造出一棵相应的平衡二叉树,并求出在等概率的情况下查找成 功的平均查找长度。 7. B+树和 B-树的主要差异树什么? 8. 什么叫哈希法?哈希法中为什么会出现冲突? 9. 设关键值集合为 { 016, 087, 154, 170, 275, 426, 503, 509, 512, 612, 653, 678 },设计 一种哈希表,取装填因子 = 0.5,根据选择的哈希函数,计算出对应的地址,并统计出发 生冲突的次数。 10. 设关键值集合为 { SUN, GAO, HUA, WAN, PEN, YAN, LIU, ZHE, YAO, CHE }, 试 构造装填因子 = 10/13 的哈希表,取关键值的首字母在字母表中的序号(字典序)作为哈 希函数值,用线性探测法解决冲突,画出其哈希表。 11. 假定一个待哈希存储的线性表为 ( 32, 75, 63, 48, 94, 25, 36, 18, 70 ), 哈希地址空间 为[ 0 . . 10 ],如果采用除留余数法构造哈希函数和分别采用步长为 1 及步长为 3 的线性探 测法处理冲突,试分别给出它们对应的哈希表,并分别求出在等概率情况下查找成功时的 平均查找长度。 12. 将序列 (13, 15, 22, 8, 34, 19, 21) 插到一个初始时是空的哈希表中, 哈希函数采用 hash (x) = 1 + ( x MOD 7 )。 (1) 使用线性探测法解决冲突; (2) 使用步长为 3 的线性探测法解决冲突;
【免费下载】数据结构练习第八章 查找
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. O(1)
B. O(log2n)
C. O(n)
3.在二叉排序树中插入一个结点的时间复杂度为( )。
D. O(n2)
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资配,料置不试技仅卷术可要是以求指解,机决对组吊电在顶气进层设行配备继置进电不行保规空护范载高与中带资负料荷试下卷高总问中体题资配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可关都能于可地管以缩路正小高常故中工障资作高料;中试对资卷于料连继试接电卷管保破口护坏处进范理行围高整,中核或资对者料定对试值某卷,些弯审异扁核常度与高固校中定对资盒图料位纸试置,.卷编保工写护况复层进杂防行设腐自备跨动与接处装地理置线,高弯尤中曲其资半要料径避试标免卷高错调等误试,高方要中案求资,技料编术试5写交卷、重底保电要。护气设管装设备线置备4高敷动调、中设作试电资技,高气料术并中课3试中且资件、卷包拒料中管试含绝试调路验线动卷试敷方槽作技设案、,术技以管来术及架避系等免统多不启项必动方要方式高案,中;为资对解料整决试套高卷启中突动语然过文停程电机中气。高课因中件此资中,料管电试壁力卷薄高电、中气接资设口料备不试进严卷行等保调问护试题装工,置作合调并理试且利技进用术行管,过线要关敷求运设电行技力高术保中。护资线装料缆置试敷做卷设到技原准术则确指:灵导在活。分。对线对于盒于调处差试,动过当保程不护中同装高电置中压高资回中料路资试交料卷叉试技时卷术,调问应试题采技,用术作金是为属指调隔发试板电人进机员行一,隔变需开压要处器在理组事;在前同发掌一生握线内图槽部纸内故资,障料强时、电,设回需备路要制须进造同行厂时外家切部出断电具习源高题高中电中资源资料,料试线试卷缆卷试敷切验设除报完从告毕而与,采相要用关进高技行中术检资资查料料和试,检卷并测主且处要了理保解。护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
(完整版)数据结构与算法第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-8章测试题 章节练习带答案
第一章绪论一.填空题1.数据结构是一门研究非数值计算的程序设计问题中计算机的_____________ 以及它们之间的_________ 和操作等的学科。
2.数据结构包括数据的_____________ 结构、_____________ 结构和运算。
3.数据的物理结构被分为_________、________、__________和___________四种。
4.数据的逻辑结构是指数据元素之间的逻辑关系,根据数据元素之间关系的不同特性,逻辑结构通常有_______________ ,________________ ,________________ 和__________________四类基本结构。
5.一种抽象数据类型包括 ____________和_____________ 两个部分。
6.数据结构是指数据及其相互之间的______________。
当结点之间存在M 对N(M:N)的联系时,称这种结构为____________当结点之间存在1 对N(1:N)的联系时,称这种结构为____________。
7.数据结构被形式地定义为(D, R),其中D是___________ 的有限集合,R是D上的有限集合。
8. 数据的基本单位是________,它在计算机中是作为一个整体来处理的。
9.算法的特性有________,___________ ,____________ ,_______________ 和__________ 等五种特性。
10.通常从四个方面评价算法的质量:_________、_________、_________和_________。
11.算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
12.算法的效率可分为______________ 效率和__________________ 效率。
13.算法的时间复杂度为(3n3+2000n log2n+90)/n2,其数量级表示为________。
数据结构练习第八章-查找
数据结构练习第八章查找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.二分查找所对应的判定树,既是一棵_______ ,又是一棵________ .二叉排序。
数据结构章节练习题及答案8
第8章查找算法1. 请简述查找的作用。
查找的作用是根据给定值从一个数据集合中搜索某个元素。
若某个元素的关键字值与给定值相等,则查找成功;否则查找失败。
2. 请简述静态查找和动态查找的含义。
静态查找只根据给定值在数据集合中按关键字查找匹配元素、访问匹配元素的属性,而不对数据集合进行插入元素、删除元素等操作;而动态查找可能会在查找过程中向数据集合中插入一个新元素或从数据集合中删除一个已有元素。
3. 请简述各种查找算法的适用范围。
各种查找算法的适用范围:(a)顺序查找虽然查找效率最低,但其对待查找数据集合的存储结构无特别要求,在对数据集合进行增、删、改等操作时效率较高,因此,根据那些不需要经常作查找操作的关键字进行查找时,一般采用顺序查找算法。
若经常作查找操作,则应使用效率较高的其他查找算法。
(b)折半查找和分块查找主要适用于数据集合增、删、改等操作较少的情况;二叉排序树查找则适用于数据集合变化较频繁的情况。
(c)哈希查找虽然在理论上具有最短的平均查找长度,但它占用的存储空间较多,且在实际中只有哈希函数构造得好才能达到常量级的平均查找长度。
而要想构造出好的哈希函数,必须以大量数据为基础,因此,哈希查找主要适用于数据分布已知的情况。
4. 请简述顺序查找对待查找数据集合的要求及顺序查找的具体步骤。
顺序查找是一种最简单、直观的查找算法,适用于采用任何存储结构的数据集合,其具体步骤为:(a)按预先规定的顺序依次将数据集合中每个元素的关键字与给定值进行比较,若某个元素的关键字与给定值相同,则查找成功;(b)若遍历所有元素后,仍没有找到关键字与给定值相同的元素,则查找失败。
5. 请简述折半查找对待查找数据集合的要求及折半查找的具体步骤。
折半查找,又称二分查找,它要求数据集合采用顺序表存储结构,且数据集合中的元素是按关键字大小有序排列的。
假设数据集合的元素按关键字递增排列,折半查找算法的具体步骤为:(a)对于包含n个元素的递增数据集合R={R[1], R[2], …, R[n]}(R[i]≤R[i+1]),根据给定元素K进行折半查找,初始化待查找数据集合的下标起始位置low=1和结束位置high=n。
数据结构第八章习题
数据结构第八章习题
1. What is the maximum number of nodes in a heap of height h?
根据"完全二叉树"定义,在h高度的堆中,最多可以有2^h-1个节点。
堆化操作的时间复杂度为O(log n),其中n为堆的节点数。
3. What is a binary max heap?
二叉最大堆是一种特殊的二叉堆,其中每个节点的值都大于或等于其
子节点的值。
4. What is heap sort?
堆排序是一种排序算法,该算法使用堆树结构来实现排序。
1)将数据结构转换成一个二叉堆。
2)将堆顶元素和堆尾元素交换。
3)将堆(无序区)的尺寸缩小1,并且再次调整堆,使其重新成为
一个大顶堆(与步骤1一样)。
4)重复步骤2和3,直到堆的尺寸为1,则排序完成
堆排序的时间复杂度为O(n*log n),其中n为堆的节点数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程(本科)第七章试题一、单项选择题1.若搜索每一个元素的概率相等,则在长度为n的顺序表上搜索到表中任一元素的平均搜索长度为()。
A. nB. n+1C. (n-1)/2D. (n+1)/22.对长度为10的顺序表进行搜索,若搜索前面5个元素的概率相同,均为1/8,搜索后面5个元素的概率相同,均为3/40,则搜索到表中任一元素的平均搜索长度为()。
A. 5.5B. 5C. 39/8D. 19/43.对长度为3的顺序表进行搜索,若搜索第一个元素的概率为1/2,搜索第二个元素的概率为1/3,搜索第三个元素的概率为1/6,则搜索到表中任一元素的平均搜索长度为()。
A. 5/3B. 2C. 7/3D. 4/34.对长度为n的有序单链表,若搜索每个元素的概率相等,则顺序搜索到表中任一元素的平均搜索长度为()。
A. n/2B. (n+1)/2C. (n-1)/2D. n/45.对于长度为n的有序顺序表,若采用折半搜索,则对所有元素的搜索长度中最大的为()的值的向上取整。
A. log2(n+1)B. log2nC. n/2D. (n+1)/26.对于长度为n的有序顺序表,若采用折半搜索,则对所有元素的搜索长度中最大的为()的值的向下取整加一。
A. log2(n+1)B. log2nC. n/2D. (n+1)/27.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为()的值除以9。
A. 20B. 18C. 25D. 228.对于长度为18的有序顺序表,若采用折半搜索,则搜索第15个元素的搜索长度为()。
A. 3B. 4C. 5D. 69.对具有n个元素的有序顺序表进行折半搜索,则搜索任一元素的时间复杂度为()。
A. O(n)B. O(n2)C. O(1)D. O(log2n)10.在一棵高度为h的具有n个元素的二叉搜索树中,搜索所有元素的搜索长度中最大的为()。
A. nB. log2nC. (h+1)/2D. h+111.从具有n个结点的二叉搜索树中搜索一个元素时,在等概率情况下进行成功搜索的时间复杂度大致为()。
A. O(n)B. O(1)C. O(log2n)D. O(n2)12.从具有n个结点的二叉搜索树中搜索一个元素时,在最坏情况下进行成功搜索的时间复杂度为()。
A. O(n)B. O(1)C. O(log2n)D. O(n2)13.向具有n个结点的二叉搜索树中插入一个元素时,其时间复杂度大致为()。
A. O(1)B. O(log2n )C. O(n)D. O(n log2n)14.在一棵A VL树(高度平衡的二叉搜索树)中,每个结点的平衡因子的取值范围是()。
A. -1~1B. -2~2C. 1~2D. 0~115.向一棵A VL树(高度平衡的二叉搜索树)插入元素时,可能引起对最小不平衡子树的调整过程,此调整分为()种旋转类型。
A. 2B. 3C. 4D. 516.向一棵A VL树(高度平衡的二叉搜索树)插入元素时,可能引起对最小不平衡子树的左单或右单旋转的调整过程,此时需要修改相关()个结点指针域的值。
A. 2B. 3C. 4D. 517.向一棵A VL树(高度平衡的二叉搜索树)插入元素时,可能引起对最小不平衡子树的双向旋转的调整过程,此时需要修改相关()个结点指针域的值。
A. 2B. 3C. 4D. 5参考答案: 1. D 2. C 3. A 4. B 5. A6. B7. C8. A9. D 10. D11. C 12. A 13. B 14. A 15. C16. A 17. C二、填空题1.以顺序搜索方法从长度为n的顺序表或单链表中搜索一个元素时,其时间复杂度为________。
2.对长度为n的搜索表进行搜索时,假定搜索第i个元素的概率为p i,搜索长度(即在搜索过程中依次同有关元素比较的总次数)为c i,则在搜索成功情况下的平均搜索长度的计算公式为________。
3.假定一个顺序表的长度为40,并假定搜索每个元素的概率都相同,则在搜索成功情况下的平均搜索长度为________。
4.以折半搜索方法从长度为n的有序表中搜索一个元素时,时间复杂度为________。
5.从有序表(12, 18, 30, 43, 56, 78, 82, 95) 中折半搜索元素56时,其搜索长度为________。
6.假定对长度n = 50的有序表进行折半搜索,则对应的判定树中最后一层的结点数为______个。
7. 从一棵二叉搜索树中搜索一个元素时,若给定值小于根结点的值,则需要向________继续搜索。
8. 从一棵二叉搜索树中搜索一个元素时,若给定值大于根结点的值,则需要向________继续搜索。
9. 向一棵二叉搜索树中插入一个新元素时,若该新元素的值小于根结点的值,则应把它插入到根结点的________上。
10. 向一棵二叉搜索树中插入一个新元素时,若该新元素的值大于根结点的值,则应把它插入到根结点的________上。
11. 向一棵二叉搜索树________一个元素时,若查找到的根结点为空值,则应把该元素结点链接到这个空指针位置上。
12. 根据n 个元素建立一棵二叉搜索树的时间复杂度性大致为_____________。
13. 在一棵AVL 树(高度平衡的二叉搜索树)中,每个结点的左子树高度与右子树高度之差的绝对值不超过________。
14. 根据一组记录 ( 56, 42, 50, 64, 48 ) 依次插入结点生成一棵AVL 树(高度平衡的二叉搜索树)时,当插入到值为_______的结点时需要进行旋转调整。
15. 根据一组记录 ( 56, 74, 63, 64, 48 ) 依次插入结点生成一棵A VL 树(高度平衡的二叉搜索树)时,当插入到值为63的结点时需要进行________________调整。
16. 根据一组记录 ( 56, 42, 38, 64, 48 ) 依次插入结点生成一棵A VL 树(高度平衡的二叉搜索树)时,当插入到值为38的结点时需要进行____________调整。
17. 根据一组记录 ( 56, 42, 73, 50, 64, 48, 22 ) 依次插入结点生成一棵AVL 树(高度平衡的二叉搜索树)时,当插入到值为_______的结点时才出现不平衡,需要进行旋转调整。
18. 在一棵A VL 树(高度平衡的二叉搜索树)上进行插入或删除元素时,所需的时间复杂度为_________。
参考答案: 1. O(n)2.∑-=10n i ii cp 3. 20.5 4. O(log 2n) 5. 3 6. 197. 左子树 8. 右子树 9. 左子树 10. 右子树 11. 插入12. O(nlog 2n)13. 114. 5015. 先右后左双旋转 16. 右单旋转17. 4818. O(lon 2n)三、判断题1. 在顺序表中进行顺序搜索时,若各元素的搜索概率不等,则各元素应按照搜索概率的降序排列存放,则可得到最小的平均搜索长度。
2.进行折半搜索的表必须是顺序存储的有序表。
3.能够在链接存储的有序表上进行折半搜索,其时间复杂度与在顺序存储的有序表上相同。
4.假定用两个有序单链表表示两个集合,则这两个集合交运算得到的集合单链表,其长度小于参加运算的任一个集合单链表的长度。
5.假定用两个有序单链表表示两个集合,则这两个集合的差运算得到的集合单链表,其长度小于参加运算的任一个集合单链表的长度。
6.折半搜索所对应的判定树,既是一棵二叉搜索树,又是一棵理想平衡二叉树(它的特点是除最底层结点外其他各层结点数都是满的,最底层的若干结点可能散布在该层各处)。
7.对二叉搜索树进行前序遍历得到的结点序列是一个有序序列。
8.在由n个元素组成的有序表上进行折半搜索时,对任一个元素进行搜索的长度(即比较次数)都不会大于log2n+1。
9.根据n个元素建立一棵二叉搜索树的时间复杂度大致为O(log2n)。
10.根据n个元素建立一棵二叉搜索树的时间复杂度大致为O(nlog2n)。
11.对于同一组记录,若生成二叉搜索树时插入记录的次序不同则得到不同结构的二叉搜索树。
12.对于同一组记录,生成二叉搜索树的结构与插入记录的次序无关。
13.对于两棵具有相同记录集合而具有不同结构的二叉搜索树,按中序遍历得到的结点序列是相同的。
14.在二叉搜索树中,若各结点的搜索概率不等,使得搜索概率越大的结点离树根越近,则得到的是最优二叉搜索树。
15.在二叉搜索树中,若各结点的搜索概率不等,使得搜索概率越小的结点离树根越近,则得到的是最优二叉搜索树。
参考答案: 1. 是 2. 是 3. 否 4. 是 5. 否6. 是7. 否8. 是9. 否10. 是11. 是12. 否13. 是14. 是15. 否四、运算题1.一个一维数组a[10]中存储着一个有序表,该有序表为:(15, 26, 34, 39, 45, 56, 58, 63, 74, 76 ),根据折半搜索所对应的判定树,写出该判定树的广义表表示,并求出在等概率情况下搜索成功的平均搜索长度。
判定树的广义表表示:_______________________________ 平均搜索长度:_________________2. 已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一维数组a[12]中,根据折半搜索过程填写成功搜索下表中所给元素34, 56, 58, 63, 94时的比较次数。
元素值 比较次数3. 假定一个线性序列为 ( 38, 52, 25, 74, 68, 16, 30, 54, 90, 72 ),根据此线性序列中元素的排列次序生成一棵二叉搜索树,求出对该二叉搜索树查找38, 74, 68, 30, 72等元素时的比较次数。
待查元素: 比较次数:4. 假定一个线性序列为 ( 56, 27, 34, 95, 73, 16, 50, 62, 65 ),根据此线性序列中元素的排列次序生成一棵二叉搜索树,求出该二叉搜索树的高度(假定树根结点的高度为0)、度为2的结点个数和叶子结点个数。
高度:_____________度为2的结点个数:____________ 叶子结点个数:____________5. 假定一个线性序列为 ( 38, 42, 55, 15, 23, 44, 30, 74, 48, 26 ),根据此线性序列中元素的排列次序生成一棵二叉搜索树,求出该二叉搜索树中左子树为空的所有单支结点和右子树为空的所有单支结点,请按从小到大的次序排列写出。
左子树为空的所有结点:____________ 右子树为空的所有结点:____________6. 已知一棵二叉搜索树的广义表表示为:28 (12 ( , 16), 49 (34 (30), 72 (63) ) ),按主教材介绍的删除算法,求出从中依次删除72, 12, 49, 28结点后得到的二叉搜索树的广义表表示。