数据结构练习第八.docx
- 文档编号:8715869
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:94
- 大小:980.21KB
数据结构练习第八.docx
《数据结构练习第八.docx》由会员分享,可在线阅读,更多相关《数据结构练习第八.docx(94页珍藏版)》请在冰豆网上搜索。
数据结构练习第八
查找-数据结构练习第八章.
数据结构练习第八章查找
1.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()
A.1,2,3B.9,5,2,3
C.9,5,3D.9,4,2,3
2.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为()。
2A.O
(1)B.O(logn)C.O(n)D.O(n)23.在二叉排序树中插入一个结点的时间复杂度为()。
2)D.O(nC.O(logn)A.O
(1)B.O(n)24.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。
A.logn+1B.logn-1C.lognD.log(n+1)22225.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。
A.25B.10C.7D.1
6.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
21/2)D.O(1ogC.O(nB.O(nn))A.O(n)27.设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为()。
2)C.O(nlogn)D.O(1ogA.O(n)B.O(nn)228.()二叉排序树可以得到一个从小到大的有序序列。
A.先序遍历B.中序遍历C.后序遍历D.层次遍历
9.设一组初始记录关键字序列为(13,18,24,35,47,50,62,83,90,115,134),则利用二分法查找关键字90需要比较的关键字个数为()。
A.1B.2C.3D.4
10.设某散列表的长度为100,散列函数H(k)=k%P,则P通常情况下最好选择()。
A.99B.97C.91D.93
11.在二叉排序树中插入一个关键字值的平均时间复杂度为()。
2)
n)D.O(nC.O(nlogB.O(1ogn)A.O(n)2212.设一个顺序有序表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)/2
15.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过()次比较。
A.1B.2C.3D.4
2
个元素,如果采用分块查找,块,每块6.设顺序线性表的长度为30,分成516)。
则其平均查找长度为(
.6.5B.11C.5DA.6
,则由这92)26,54,,.设有一组初始记录关键字序列为(34,76,4518,17。
组记录关键字生成的二叉排序树的深度为()D.7C.6.4B.5A
)根结点的值。
18.二叉排序树中左子树上所有结点的值均(
D.!
=
C.=.
HASH表中需要做(映射到2n(n-1)/2DA.n.B.n(n+1)C.n(n+1)/2
.用散列函数求元素在散列表中的存储位置时,可能会出现不同的关键字得20()到相同散列函数值的冲突现象。
可用于解决上述问题的是B.线性探测法除留余数法A.D.折叠法C.平方取中法21.表示待散列存储的元m表示散列表的长度,n22.在线性表的散列存储中,若用)。
素的个数,则装填因子?
等于(m/(n+m)
.n/(n+m)D..n/mB.m/nCA树删除元素的过程中,若最终引起树根结点的合并,则新树高度.从一棵B_23)。
是(
.原树高度减1A.原树高度加1BD.不确定C.原树高度)。
24.向二叉搜索树中插入一个元素时,其时间复杂度大致为(
n)B.O(n)C.O
(1)D.0(nloglogn).OA(22树中,每个结点最多有()个关键码。
.5阶B255
..4DA.2B.3C).对一棵二叉排序树采用中根遍历进行输出的数据一定是(26递增无序序列D.A.递增或递减序列B.递减序列C.序列,100}82,95,7541,45,62,,77,329{127.一个有序表为,3,,12,,)的结点时,查找成功时的比较次数为(当二分查找值为82D.8C.4A.1B.2
()个结点的二叉排序树,最坏的情况下其深度不超过若构造一棵具有28.nn?
1nC.
D.n+1A.
B.n2229.闭散列表中由于散列到同一个地址而引起的“堆积”现象,是()
A.由同义词之间发生冲突引起的
B.由非同义词之间发生冲突引起的
C.由同义词之间或非同义词之间发生冲突引起的
D.由散列表“溢出”引起的
30.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。
这种方式主要适合于()
3
A.静态查找表B.动态查找表
C.静态查找表与动态查找表D.静态查找表或动态查找表
31.设一组记录的关键字key值为{62,50,14,28,19,35,47,56,83},散列函数为H(key)=keymod13,则它的开散列表中散列地址为1的链中的结点个数是()
A.1B.2C.3D.4
32.已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分检索值为90的元素时,检索成功需比较的次数是()
A.1B.2C.3D.4
33.闭散列表中由于散列到同一个地址而引起的“堆积”现象,是由()
A.同义词之间发生冲突引起的
B.非同义词之间发生冲突引起的
C.同义词与非同义词之间发生冲突引起的
D.散列地址“溢出”引起的
34.在最坏的情况下,查找成功时二叉排序树的平均查找长度()
A.小于顺序表的平均查找长度B.大于顺序表的平均查找长度
C.与顺序表的平均查找长度相同D.无法与顺序表的平均查找长度比较
35.闭散列表中由于散列到同一个地址而引起的“堆积”现象,是由()
A.同义词之间发生冲突引起的
B.非同义词之间发生冲突引起的
C.同义词之间或非同义词之间发生冲突引起的
D.散列表“溢出”引起的
36.设有100个元素,用二分法查找时,最大比较次数是()。
A.25B.7C.10D.1
37.设有1000个元素,用二分法查找时,最小比较次数为()
A.0B.1C.10D.500
38.在一个长度为n的顺序线性表中顺序查找值为x的元素时,查找成功时的平均查找长度(即x与元素的平均比较次数,假定查找每个元素的概率都相等)为()。
A.nB.n/2C.(n+1)/2D.(n-1)/2
39.对有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)
2)D.O(NlogN)A.O
(1)B.O(N)C.0(N41.对线性表进行二分查找时,要求线性表必须(B)
A.以顺序方式存储B.以顺序方式存储,且数据元素有序
C.以链接方式存储D.以链接方式存储,且数据元素有序
42.下列二叉排序树中查找效率最高的是(A)
A.平衡二叉树B.二叉查找树
C.没有左子树的二叉排序树D.没有右子树的二叉排序树
4
43.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用下列哪一种查找方法。
A
A.分块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,11B.12C.13D.14
49.关于杂凑查找说法不正确的有几个(B)
(1)采用链地址法解决冲突时,查找一个元素的时间是相同的
(2)采用链地址法解决冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的
(3)用链地址法解决冲突易引起聚集现象
(4)再哈希法不易产生聚集
A.1B.2C.3D.4
50.设哈希表长M=14,哈希函数H(KEY)=KEYMOD11。
表中已有4个结点:
ADDR(15)=4,ADDR(38)=5,ADDR(61)=6,ADDR(84)=7,其余地址为空,如用二次探测再散列处理冲突,关键字为49的结点的地址是(D)。
A.8B.3C.5D.9
51.散列函数有一个共同的性质,即函数值应当以(D)取其值域的每个值。
A.最大概率B.最小概率C.平均概率D.同等概率
52.将10个元素散列到100000个单元的哈希表中,则(C)产生冲突。
A.一定会B.一定不会C.仍可能会
53.长度为10的按关键字有序的查找表采用顺序组织方式。
若采用折半查找方)ASL值是(D法,则在等概率情况下,查找失败时的A.24/10B.24/11C.39/10D.39/11
.在采用拉链法处理冲突所构成的开散列表上查找某一关键字,在查找成功54)A的情况下,所探测的这些位置上的键值(
不一定都是同义词B.A.一定都是同义词5
C.都相同D.一定都不是同义词
55.二叉查找树的查找效率与二叉树的树型有关,在(C)时其查找效率最低。
A.结点太多B.完全二叉树C.呈单枝树D.结点太复杂。
56.具有12个关键字的有序表,折半查找的平均查找长度(A)
A.3.1B.4C.2.5D.5
57.哈希查找中k个关键字具有同一哈希值,若用线性探测法将这k个关键字对应的记录存入哈希表中,至少要进行(C)次探测。
A.kB.k+1C.k(k+1)/2D.1+k(k+1)/2
58.对线性表进行二分查找时,要求线性表必须(B)
A.以顺序方式存储B.以顺序方式存储,且数据元素有序
C.以链接方式存储D.以链接方式存储,且数据元素有序
59.若查找每个元素的概率相等,则在长度为n的顺序表上查找任一元素的平均查找长度为(D)。
A.nB.n+1C.(n-1)/2D.(n+1)/2
60.对长度为10的顺序表进行查找,若查找前面5个元素的概率相同,均为
1/8,查找后面5个元素的概率相同,均为3/40,则查找任一元素的平均查找长度为(C)。
A.5.5B.5C.39/8D.19/4
61.对长度为3的顺序表进行查找,若查找第一个元素的概率为1/2,查找第二个元素的概率为1/3,查找第三个元素的概率为1/6,则查找任一元素的平均查找长度为(A)。
A.5/3B.2C.7/3D.4/3
62.对长度为n的单链有序表,若查找每个元素的概率相等,则查找任一元素的平均查找长度为(B)。
A.n/2B.(n+1)/2C.(n-1)/2D.n/4
63.对于长度为9的顺序存储的有序表,若采用二分查找,在等概率情况下的平均查找长度为(A)的9分之一。
A.20B.18C.25D.22
64.对于长度为18的顺序存储的有序表,若采用二分查找,则查找第15个元素的查找长度为(B)。
A.3B.4C.5D.6
65.对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用二分查找,则查找元素26的查找长度为(C)。
A.2B.3C.4D.5
66.对具有n个元素的有序表采用二分查找,则算法的时间复杂性为
(D)。
A.O(n)B.O(n2)C.O
(1)D.O(log2n)
67.在索引查找中,若用于保存数据元素的主表的长度为n,它被均分为k个子表,每个子表的长度均为n/k,则索引查找的平均查找长度为(D)。
A.n+kB.k+n/kC.(k+n/k)/2D.(k+n/k)/2+1
68.在索引查找中,若用于保存数据元素的主表的长度为n,它被均分为若干6
个子表,每个子表的长度均为s,则索引查找的平均查找长度为(B)。
A.(n+s)/2B.(n/s+s)/2+1C.(n+s)/2+1D.(n/s+s)/2
69.在索引查找中,若用于保存数据元素的主表的长度为144,它被均分为12
子表,每个子表的长度均为12,则索引查找的平均查找长度为(A)。
A.13B.24C.12D.79
70.在索引查找中,若用于保存数据元素的主表的长度为117,它被均分为9
子表,则索引查找的平均查找长度为(B)。
A.11B.12C.13D.9
71.在一棵深度为h的具有n个元素的二叉排序树中,查找所有元素的最长查找长度为(D)。
A.nB.lognC.(h+1)/2D.h272.从具有n个结点的二叉搜索树中查找一个元素时,在平均情况下的时间复杂性大致为(C)。
2)O(nD.O
(1)C.O(logn)A.O(n)B.273.从具有n个结点的二叉搜索树中查找一个元素时,在最坏情况下的时间复杂性为(A)。
2)D.O(nC.O(logn)A.O(n)B.O
(1)274.向具有n个结点的二叉搜索树中插入一个元素时,其时间复杂性大致为
(B)。
A.O
(1)B.O(logn)C.O(n)D.O(nlogn)2275.根据n个元素建立一棵二叉搜索树时,其时间复杂性大致为(D)。
2)D.O(nlogn.O(logn)C.O(n).AO(n)B2276.在一棵平衡二叉排序树中,每个结点的平衡因子的取值范围是(A)。
A.-1~1B.-2~2C.1~2D.0~1
77.若根据查找表(23,44,36,48,52,73,64,58)建立开散列表,采用h(K)=K
计算散列地址,则元素64的散列地址为(C)。
A.4B.8C.12D.13
78.若根据查找表(23,44,36,48,52,73,64,58)建立开散列表,采用h(K)=K%7
计算散列地址,则散列地址等于3的元素个数(B)。
A.1B.2C.3D.4
79.若根据查找表(23,44,36,48,52,73,64,58)建立开散列表,采用h(K)=K%7
计算散列地址,则同义词元素个数最多为(C)。
A.1B.2C.3D.4
80.若根据查找表建立长度为m的闭散列表,采用线性探测法处理冲突,假定对一个元素第一次计算的散列地址为d,则下一次的散列地址为(D)。
A.dB.d+1C.(d+1)/mD.(d+1)%m
81.若根据查找表建立长度为m的闭散列表,采用二次探测法处理冲突,假定对一个元素第一次计算的散列地址为d,则第四次计算的散列地址为
(C)。
A.(d+1)%mB.(d-1)%mC.(d+4)%mD.(d-4)%m
82.在采用线性探测法处理冲突的闭散列表上,假定装填因子a的值为0.5,则查找任一元素的平均查找长度为(B)。
A.1B.1.5C.2D.2.5
83.在采用链接法处理冲突的开散列表上,假定装填因子a的值为4,则查7
找任一元素的平均查找长度为(A)。
A.3B.3.5C.4D.2.5
84.在散列查找中,平均查找长度主要与(C)有关。
A.散列表长度B.散列元素的个数C.装填因子D.处理冲突方法
85.对顺序表进行二分查找时,要求顺序表必须:
A.以顺序方式存储B.以顺序方式存储,且数据元素有序
C.以链接方式存储D.以链接方式存储,且数据元素有序
【解答】B
86.下列二叉排序树中查找效率最高的是:
A.平衡二叉树B.二叉查找树
C.没有左子树的二叉排序树D.没有右子树的二叉排序树
【解答】A
二、填空题
1.假定一个线性表为(12,23,74,55,63,40),若按Key%4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_____________、___________、________和___________。
(12,40),(),(74),(23,55,63)
2.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。
增加1
3.为了能有效地应用HASH查找技术,必须解决的两个问题是________________和_____________________。
构造一个好的HASH函数,确定解决冲突的方法
4.设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较________次就可以断定数据元素X是否在查找表中。
7
5.下列算法实现在顺序散列表中查找值为x的关键字,请在下划线处填上正确的语句。
structrecord{intkey;intothers;};
inthashsqsearch(structrecordhashtable[],intk)
{
inti,j;j=i=k%p;
while(hashtable[j].key!
=k&&hashtable[j].flag!
=0){j=(____)%m;
if(i==j)return(-1);}
if(_______________________)return(j);elsereturn(-1);
}j+1,hashtable[j].key==k
6.下列算法实现在二叉排序树上查找关键值k,请在下划线处填上正确的语句。
typedefstructnode{intkey;structnode*lchild;structnode
*rchild;}bitree;
bitree*bstsearch(bitree*t,intk)
{
if(t==0)return(0);elsewhile(t!
=0)
if(t->key==k)_____________;elseif(t->key>k)t=t->lchild;
else_____________;
}return(t),t=t->rchild
8
7.根据初始关键字序列(19,22,01,38,10)建立的二叉排序树的高度为____________。
3
8.设散列函数H(k)=kmodp,解决冲突的方法为链地址法。
要求在下列算法划线处填上正确的语句完成在散列表hashtalbe中查找关键字值等于k的结点,成功时返回指向关键字的指针,不成功时返回标志0。
typedefstructnode{intkey;structnode*next;}lklist;
voidcreatelkhash(lklist*hashtable[])
{
inti,k;lklist*s;
for(i=0;i for(i=0;i { s=(lklist*)malloc(sizeof(lklist));s->key=a[i]; k=a[i]%p;s->next=hashtable[k];_______________________; } } hashtable[i]=0,hashtable[k]=s 9.下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句。 structrecord{intkey;intothers;}; intbisearch(structrecordr[],intk) { intlow=0,mid,high=n-1; while(low<=high) { ________________________________; if(r[mid].key==k)return(mid+1);elseif(____________) high=mid-1;elselow=mid+1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 练习 第八