数据结构 第九章查找

数据结构 第九章查找
数据结构 第九章查找

第九章查找:习题

习题

一、选择题

1.散列表查找中k个关键字具有同一散列值,若用线性探测法将这k个关键字对应的记录存入散列表中,至少要进行( )次探测。

A. k

B.k+l

C. k(k+l)/2

D. l+k (k+l)/2

2.下述命题( )是不成立的。

A. m阶B-树中的每一个结点的子树个数都小于或等于m

B. m阶B-树中的每一个结点的子树个数都大于或等于『m/2-1

C. m阶B-树中的每一个结点的子树高度都相等

D.m阶B-树具有k个子树的非叶子结点含有(k-l)个关键字

3.如果要求一个基本线性表既能较快地查找,又能适应动态变化的要求,可以采用( ) 查找方法。

A.分块

B. 顺序

C. 二分

D.散列

4.设有100个元素,用折半查找法进行查找时,最大比较次数是( ),最小比较次数

是( )。

A.7,1

B.6,l

C.5,1

D. 8,1

5.散列表长m=15,散列表函数H(key)=key%13。表中已有4个结点:addr(18)=5;addr(32)=6; addr(59)=7; addr(73)=8;其余地址为空,如果用二次探测再散列处理冲突,关键字为109的结点的地址是( )。

A. 8

B. 3

C. 5

D. 4

6.用分块查找时,若线性表中共有729个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分( )个结点最佳。

A. 15

B. 27

C. 25

D. 30

7.散列函数有一个共同性质,即函数值应当以( )取其值域的每个值。

A.同等概率

B. 最大概率

C. 最小概率

D.平均概率

8.设散列地址空间为O..m-1,k为关键字,假定散列函数为h(k)=k%p,为了减少冲突,一般应取p为( )。

A.小于m的最大奇数

B. 小于m的最大素数

C.小于m的最大偶数

D.小于m的最大合数

9.当向一棵m阶的B-树做插入操作时,若使一个结点中的关键字个数等于( ),则必

须分裂成两个结点。

A.m

B. m-l

C.m+l

D.[m+1]

10.当向一棵m阶的B壤f做删除操作时,若使一个结点中的关键字个数等于( ),则可能需要用它的左兄弟或右兄弟结点合并成一个结点。

A. [m/2]

B.[m-l]

C. [m/2]+1

D. [m+l]-2

11.衡量查找算法效率的主要标准是( )。

A. 元素个数

B. 所需的存储量

C. 平均查找长度

D.算法难易程度

二、填空题

1.顺序查找长度为n的顺序表,查找成功的平均查找长度为____。

2.折半查找要求线性表的存储结构为____;而用顺序查找的线性表,既可以采用,也可以采用____。

3.散列查找是一种对关键字进行____的查找方法。

4.散列法既是一种查找方法,又是一种____方法。

5.在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数为____。

6.在散列存储中,装填因子α的值越大,存取元素时发生冲突的可能性就____;α的值越小,存取元素时发生冲突的可能性就____。

7.在线性表的散列存储中,处理冲突有____和____两类;当装填因子一定时,

采用链地址法处理冲突比采用开放定址法处理冲突的平均查找长度要____。

8.在一棵10阶的B-树上,每一个树根结点中所含的关键字数目最多允许为____;

最少允许为____。

9.当向B-树中插入关键字时,可能引起结点的____;最终可能导致整个B-树的高

度____。

三、简答题

1.对含有n个互不相同元素的集合,同时找最大元素和最小元素至少需要多少次比较?

2.若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试在下述两种情况下分别讨论两者在等概率时的平均查找长度:

(1)查找不成功,即表中无关键字等于给定值。

(2)查找成功,即表中有关键字等于给定值k的记录。

3.对给定的关键字集合,以不同的次序插入初始为空的树中,是否有可能得到同一棵二叉排序树?

4.将二叉排序树T的前序序列中关键字依次插入初始为空的树中,所得到的二叉排序树T’与T是否相同?为什么?

5.设二叉排序树中关键字由1到1000内的整数构成,现要查找关键字为363的结点,下述关键字序列哪一个不可能是在二叉排序树上查找到的序列。

(1) 2,252,401,398,330,344,397,363

(2) 924,220,911,244,898,258,362,363

(3) 925,202,911,240,912,245,363

(4) 2,399,387,219,266,382,381,278,363

6.为什么二叉排序树长高时,新结点总是一个叶子,而B-树长高时,新结点总是根?哪一种长高能保证树平衡?

7.设有一组关键字(17,13,14,153,29,35)需插入到表长为12的散列表中.请回答以下问题:

(l)设计一个适合该散列表的散列函数;

(2)设计的散列函数将上述关键字插入到散列表中,画出其结构;并指出用线性探测法

解冲突时构造散列表的装填因子为多少?

8.已知记录关键字集合( 53,17,19,61,98,75,79,63,46,49),要求散列到地址区间(100,101,102,103,104,105,106,107,108,109)内,若产生冲突用开放定址法的线性探测法解决,要求写出选用的散列函数;形成散列表;计算出查找成功时平均查找长度(设等概率情况)。

9.已知一个含有100条记录的表,关键字为中国姓氏的拼音,若采用散列存储方式存放此表,请给出此表的一个散列表设计方案,要求它在等概率的情况下查找成功的平均查找长度不超过3。

四、算法设计题

1.利用二叉树遍历的思想写一个判断二叉树是否为平衡二叉树的算法test(BsTree *p,i nt balance,…);其中p初值指向待判二叉树的根,balance是一判断结果的输出标志,初值为True(l),根据需要可增加其他必要的参数。在判断各点平衡的过程中,一旦发现有悖于平衡二叉树的定义,则balance应转变为False(0),且终止该过程。

2.设单链表的结点按关键字的大小从小到大排列,试写出对此链表的查找算法,并说明是否可用折半查找。

3.试设计一个算法,求出指定结点在给定的二叉排序树中的层次。

4.编写对有序表进行顺序查找的算法,并画出对有序表进行顺序查找的判定树,假设每次查找时的给定值为随机值,查找成功和不成功的概率也相等,试求进行每依次查找时,与给定值进行比较的关键字个数的期望值。

5.已知一组递增有序的关键字k[0…n-1];k0≤k i≤…≤k n-1,在等概率查找的前提下,可以生成一棵二叉排序树。以哪个关键字为根结点,按什么方式生成二叉排序树既有平衡性又简单?阐明算法思路,写出相应的算法。如果k[0…10]为:(7,12,13,15,21,33,38, 41,49,55,58)。按你的算法画出这棵二叉排序树。

6.编写判定给定的二叉树是否是二叉排序树的函数。

7.编写一个算法,删除二叉排序树中除根结点以外的任一结点p,已知p的双亲结点f。

8.已知某散列表的装填因子小于1,散列函数h(k)为k(k为标识符,均小写)的第一个字母在字母表中的序号。采用开放定址法的线性探测再散列解决冲突。试编写一个按第一个字母的顺序输出散列表中所有关键字的算法。

第九章查找

第9章查找

一.选择题

1.C 2.D 3.A 4.D 5.D 6.B

7.A 8.B 9.A 10.D 11.C

二.填空题

1.(n+l)/2。 2.顺序存储结构、顺序存储结构、链接存储结构。 3.运算。 4.存储。

5.2 6.越大,越小。

7.开放定址法,链地址法,短。 8.9,4。 9.分裂,增加l。

三、简答题

1.按照下面的顺序查找算法,如果初始序列递增有序,则只需比较n-l次;如果初始序列递减有序,则需比较2(n-l)次。因此,对含有n个互不相同元素的集合,同时找最大元素和最小元素至少需要比较n-l次,最多需要比较2(n-l)次。

max=min=r[O].key;

for(i=1;i

if(r[i]. key>max) max-r[i]. key;

else if(r[i]. key

2.(1)查找不成功的情况。

1)对于有序表,第一小的元素在0号位置,第二小的元素在l号位置,第n小的元素,

即最大的元素在n-l号位置。显然,查找第i小的元素只要比较i+l次就能够确定查找不成功。因此,在等概率的情况下,查找不成功的平均查找长度为

2)对于无序的顺序表,查找每一个元素都要比较n+l次才能确定其查找不成功。因此在等概率的情况下查找不成功的平均查找长度为n+l。

(2)查找成功的情况。不论是有序表还是无序表,在位置i上查找成功的比较次数均为i+l次,因此在等概率的情况下,其成功的平均查找长度均为(n+l)/2。

3.除单元素外,对给定关键字集合,以不同的次序插入初始为空的树中不可能得到同一棵二叉排序树。

4.因为按二叉排序树T的前序序列将关键字依次插入到初始为空的二叉排序树T’中的插入过程与二叉排序T,的前序遍历过程完全一致,次序不会改变,所以T’与T完全相同。

5.关键字序列(3)不可能是在二叉排序树上查找到的序列。

因为根据序列(3),240是911的左孩子,912在240的后面,是240的右孩子;而实际上,912比911大,应当在911的右子树上,即912不可能出现在911的左子树上,所以序列(3)不可能出现。

6.因为二叉排序树的插入总是从根结点开始逐层往下比较,若比根小,则走左边;若比根大,则走右边。这样找到的插入位置,不是某结点的空闲左链域就是某结点的空闲右链域,即新结点总是作为叶结点插入进来的。

B-树的插入不是在树中添加一个叶结点;而是首先在最底层的某个终端结点中添加一个关键字,若该结点的关键字数不超过m-l,则完成插入,否则进行向上“分裂”,从而使新结点总是以根的形式出现。

B-树的插入能保证树的平衡。

7.(1)由于散列表的长度为12,则可选不超过表长的最大素数ll作为除留余数法的模,则可得其散列函数为h(k)=k%11。

(2)若用线性探测法解决冲突,则可构造出散列表如下:

此时,其装填因子为:α= 6/12=0.5。

8.散列函数:H(key)=lOO+(key个位数+key十位数)%10。

形成散列表为:

查找成功时的平均长度为:(1×5+2×1+3×1+5×3)/10=2.5

9.(1)确定该散列表的装填因子a。散列表的查找效率与采用的处理冲突的方法及散列表的装填因子α有关。α越小,表中的记录数越少或表越长,发生冲突的可能性就越小,此时的查找效率越高:反之,α越大,表中的记录数越多或表的长度越小,表中记录的密度越高,发生冲突的可能性越大,查找效率越低,所花的时间也越长。依据这些因素,可以采用二次探测法作为处理冲突的方法,此时在等概率的情况下查找成功的平均查找长度为:Sn ≈-(ln(1-α))/α

由题意可知要求S。<3,即使Sn≈-(ln(1-α))/α<3,求解α可取0.8。

(2)确定散列表的长度。由于表中具有100个记录,可选择散列表的长度约为100/0.8= 125,选择表长127(最接近125的质数)。

(3)依据关键字的特性和散列表的长度选择合适的散列函数。由于表中的记录关键字为中国姓氏的拼音,它们长度不等,可以选择随机法构造散列函数。比如:

H(key)=(姓氏的拼音中各字母的序号和)%127

从而就可以简单地设计一个散列表。

四、算法设计题

1.一棵二叉树是平衡二叉树的充要条件是:左右子树都是平衡二叉树,且左右子树的高度差的绝对值不超过l。具体实现算法如下:

void test (BsTree *p, int *balance, int *h)

{ int hl, hr, bl, br;

if (p){*blance=l;*h=0;) //h表示树高

else if(! p->lchild&& !p->rchild){

*balance=l; *h=l;)

else ( test (p->lchild, &bl, &hl);

test (p->rchild, &br, &hr);

*h=l+max( hl, hr);

if (abs (hl-hr)<2) +balance=l;

else *balance=0;

}

}

2.设单链表的头指针为head,若查找成功,则返回待查找结点的指针。否则查找失败,返回一个空指针,算法描述如下:

LinkList *Search (LinkList *head,KeyType k) //head为单链表类型

{ LinkList *q;

q=head;

while(q&&k>q->key) q=q->next;

if (k==q->key) return q;

else return NULL;

}

容易看出,查找成功时的平均查找长度为:ASL= :(i+1)/n=(n+1)/2。

虽然单链表中的结点是按从小到大的顺序排列,但结点没有序号的概念,查找结点时只能从头指针开始逐步搜索,故不能用折半查找。

3.采用二叉链表存储二叉排序,根结点为t,算法实现如下:

int count (BsTree*t, BsTree *p)

//求指定结点p在以*t为根的二叉排序树中的层次

{ int level=0;

if(t){

level++;

while(t&&t->key! -p->key){

if(t->keykey) t=t->rchild;

else t=t->lchild;

level++;

)

if(!t) level=0; //结点p不在二叉树t中

}

return level;

}

4. int search(Stable L, KeyType key)

//在有序顺序表中顺序查找关键字为key的元素。

//若找到,返回该元素在表中的位置,否则返回一1

{ for (i=0; i

if (L.elem [i]. key==key) return i;

else if (L.elem[i]. key>key) return -l;

return -l;

}

顺序查找的判定树如图9-1所示。

比较次数的期望值:(1+2+ .n/n=(n+1)/2

5.以中间的关键字为根结点,按二分法生成二叉排序

树既有平衡性又简单,算法如下:

voidbuild (BsTree **t,int low,int high, int*k)

//low和high分别为关键字组k的下界和上界,初始值分别为O,n-l

{ int m;

if (low>high) *kt=NULL;

else{

m= (low+high) /2;

*t= (BsTree*)malloc( sizeof (BsTree));

(*t)一>key=k[m];

build( (*t) ->lchild, low, m-l,k);

build( (*t) ->rchild, m+l, high,k);

}

}

build(&t,O,n-l,k); //调用建立函数

对所给关键字序列,根据上述算法可得二叉排序树如图9-2所示。

6.二叉树是二叉排序树的条件是,左右分支都是二叉排序树,且根结点的值大于左分支中结点的所有值(也即大于左分支的最大值)而小于右分支中结点的所有值(也即小于右分支的最小值)。具体实现算法如下:

int isbisorttree (BsTree *t)

( if( !t) return 1;

if (isbisorttree (t->lchild) &&isbisorttree (t->rchild))(

m=max( t->lchild); n=min( t->rchild);

return(t->key>m&&t->key<=n);

}

else return 0;

}

int max (BsTree *p) //求二叉排序树左分支中结点的最大值

{ if( !p) return -Maxint; //最小的整数

while (p->rchild) p=p->rchild;

return p->key;

}

int min (BsTree *p) //求二叉排序树右分支中结点的最小值

( if(!p) return Maxint; //最大的整数

while (p->lchild) p=p->lchild;

return p->key;

}

}

7.算法的基本思想是在p的左子树找一个最大值结点s,用s替代p。

void deltree (BsTree *p, BsTree*f)

{ if(! p->lchild) s=p->rchild;

else if(!p->rchild) s=p->lchild;

else{

q=p; s=q->lchild;

while(s->rchild)f

q=s; s=s->rchild;)

if(q!=p){

q->rchild=s->lchild; s->lchild=p->lchild;}

}

if (p==f->lchild) f->lchild=s;

else f->rchild=s;

free (p);

}

8.设散列表为HT[O]~HT[MaxSize-1],每个数组元素的类型为字符串,算法描述如下: #define MaxSize=100

typedef DataType char[50]j

int h(DataType k)

{ return k[0] -'a'+1;)

Hashout( DataType *HT)

{ int i,j;

for(i=1;i<=26;i++){

j=0;

while (HT[j]){ //HT[j]不空

if(h(HT[j])==i) printf("%C\t", HT[j]);

j= (j+l)%MaxSize;

}

printf("\n");

}}

数据结构 第九章 查找 作业及答案

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

《数据结构》习题集:第9章_查找

第九章查找 1.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现 进行二分查找,则查找A[3]的比较序列的下标依次为( ) A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 2.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为()。 A. O(1) B. O(log 2 n) C. O(n) D. O(n2) 5.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。 A. 25 B. 10 C. 7 D. 1 6.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。 A. O(n) B. O(n2) C. O(n1/2) D. O(1og 2 n) 8.()二叉排序树可以得到一个从小到大的有序序列。 A. 先序遍历 B.中序遍历 C. 后序遍历 D. 层次遍历9.设一组初始记录关键字序列为(13,18,24,35,47,50,62,83,90,115,134),则利用二分法查找关键字90需要比较的关键字个数为()。 A. 1 B. 2 C. 3 D. 4 10.设某散列表的长度为100,散列函数H(k)=k % P,则P通常情况下最好选择()。 A. 99 B. 97 C. 91 D. 93 11.在二叉排序树中插入一个关键字值的平均时间复杂度为()。 A. O(n) B. O(1og 2n) C. O(nlog 2 n) 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. n B. n/2 C. (n+1)/2 D. (n-1)/2 15.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过()次比较。 A. 1 B. 2 C. 3 D. 4 17.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为()。 A. 4 B. 5 C. 6 D. 7 18.二叉排序树中左子树上所有结点的值均()根结点的值。 A. < B. > C. = D. != 26.对一棵二叉排序树采用中根遍历进行输出的数据一定是() A.递增或递减序列 B.递减序列 C.无序序列 D.递增 序列 27.一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当

数据结构 第9章 查找

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

数据结构第九、十章作业题及答案

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

数据结构第9章作业 查找答案

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

数据结构第九章查找练习及答案

一、选择题 1、对线性表进行二分查找时,要求线性表必须() A、以顺序方式存储 B、以链表方式存储 C、以顺序方式存储,且结点按关键字有序排列 D、以链表方式存储,且结点按关键字有序排列 2、采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为() A、n B、n/2 C、(n+1)/2 D、(n-1)/2 3、采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为() A、n2 B、nlog2n C、n D、log2n 4、二分查找和二叉排序树的时间性能() A、相同 B、不相同 C、有时相同 D、有时不相同 5、有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的结点时,()次比较后查找成功。 A、1 B、2 C、4 D、8 6、哈希表长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 7、一个长度为12的有序表,按二分查找法对该表进行查找,在表内每个元素等概率情况下查找成功所需的平均比较次数() A、35/12 B、37/12 C、39/12 D、43/12 8、用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分()结点最佳。 A、10 B、25 C、6 D、625 9、如果要求一个线性表既能较快的查找,又能适应动态变化的要求,可以采用()查找方法。 A、分块 B、顺序 C、二分 D、散列 10、有100个元素,用折半查找法进行查找时,最大比较次数是() A、25 B、50 C、10 D、7 11、有100个元素,用折半查找法进行查找时,最小比较次数是() A、7 B、4 C、2 D、1 12、散列函数有一个共同性质,即函数值应当以()取其值域的每个值。 A、同等概率 B、最大概率 C、最小概率 D、平均概率 13、散列地址空间为0到m-1,k为关键字,用p去除k,将所得的余数作为k的散列地址,即H(k)=k%p。为了减少发生冲突的概率,一般取p为() A、小于m的最大奇数 B、小于m的最大偶数 C、小于m的最大素数 D、小于m的最大合数 14、顺序存储的表格中有90000个元素,按关键字值额定升序排列,假定对每个元素进行查找的概率是相同的,且每个元素的关键字的值皆不相同,用顺序查找法查找时,平均比较次数约为(C),最大比较次数约为(D) A、25000 B、30000 C、45000 D、90000 二、填空题 1、若有一棵二叉排序树,则按照中序遍历顺序将产生一个(有序)序列 2、顺序查找法的平均查找长度为((N+1)/2);二分查找法的平均查找长度为(LOG2N);分

中南大学数据结构与算法第9章查找课后作业答案..

第9章查找习题练习答案 1.对含有n个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较? 答: 设变量max和min用于存放最大元和最小元(的位置),第一次取两个元素进行比较,大的放入max,小的放入min。从第2次开始,每次取一个元素先和max比较,如果大于max 则以它替换max,并结束本次比较;若小于max则再与min相比较,在最好的情况下,一路比较下去都不用和min相比较,所以这种情况下,至少要进行n-1次比较就能找到最大元和最小元。 2.若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试在下述两种情况下分别讨论两者在等概率时的平均查找长度: (1)查找不成功,即表中无关键字等于给定值K的记录; (2)查找成功,即表中有关键字等于给定值K的记录。 答: 查找不成功时,需进行n+1次比较才能确定查找失败。因此平均查找长度为n+1,这时有序表和无序表是一样的。 查找成功时,平均查找长度为(n+1)/2,有序表和无序表也是一样的。因为顺序查找与表的初始序列状态无关。 3.画出对长度为18的有序的顺序表进行二分查找的判定树,并指出在等概率时查找成功的平均查找长度,以及查找失败时所需的最多的关键字比较次数。 答:

等概率情况下,查找成功的平均查找长度为: ASL=(1+2*2+3*4+4*8+5*3)/18=3.556 查找失败时,最多的关键字比较次树不超过判定树的深度,此处为5. 4.为什么有序的单链表不能进行折半查找? 答: 因为链表无法进行随机访问,如果要访问链表的中间结点,就必须先从头结点开始进行依次访问,这就要浪费很多时间,还不如进行顺序查找,而且,用链存储结构将无法判定二分的过程是否结束,因此无法用链表实现二分查找。 5.设有序表为(a,b,c,e,f,g,i,j,k,p,q),请分别画出对给定值b,g和n进行折半查找的过程。 解: (1)查找b的过程如下(其中方括号表示当前查找区间,圆括号表示当前比较的关键字) 下标: 1 2 3 4 5 6 7 8 9 10 11 12 13 第一次比较:[a b c d e f (g) h i j k p q] 第二次比较:[a b (c) d e f] g h i j k p q 第三次比较:[a (b)]c d e f g h i j k p q 经过三次比较,查找成功。 (2)g的查找过程如下:

《数据结构》第九章作业参考答案

第九章查找 9.3 画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。 解:判定树应当描述每次查找的位置: 9.9已知如下所示长度为12的表: (Jan, Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov, Dec) (1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树, 并求其在等概率的情况下查找成功的平均查找长度。 (2)若对表中元素先进行排序构成有序表,求在等概率的情况下对此有序表进行折半查找时查找成 功的平均查找长度。 (3)按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。解:

9.19解: H(22)=(3×22) mod 11=0 H(41)=(3×41) mod 11=2 H(53)=(3×53) mod 11=5 H(46)=(3×46) mod 11=6 H(30)=(3×30) mod 11=2 冲突d1=(7×30) mod 10+1=1 H1(30)=(2+1)/11=3 H(13)=(3×13) mod 11=6 冲突d1=(7×13) mod 10+1=2 H1(13)=(6+2)/11=8 H(01)=(3×01) mod 11=3冲突d1=(7×1) mod 10+1=8 H1(01)=(3+8)/11=0冲突d2=2*((7×1) mod 10+1)=16 H2(01)=(3+16)/11=8冲突 d3=3*((7×1) mod 10+1)=24 H3(01)=(3+24)/11=5冲突 d4=4*((7×1) mod 10+1)=32 H4(01)=(3+32)/11=2冲突 d5=5*((7×1) mod 10+1)=40 H5(01)=(3+40)/11=10 H(67)=(3×67) mod 11=3冲突 d1=(7×67) mod 10+1=10 H1(67)=(3+10)/11=2冲突 d2=2*((7×67) mod 10+1)=20 H2(67)=(3+20)/11=1

数据结构 第九章查找

第九章查找:习题 习题 一、选择题 1.散列表查找中k个关键字具有同一散列值,若用线性探测法将这k个关键字对应的记录存入散列表中,至少要进行( )次探测。 A. k B.k+l C. k(k+l)/2 D. l+k (k+l)/2 2.下述命题( )是不成立的。 A. m阶B-树中的每一个结点的子树个数都小于或等于m B. m阶B-树中的每一个结点的子树个数都大于或等于『m/2-1 C. m阶B-树中的每一个结点的子树高度都相等 D.m阶B-树具有k个子树的非叶子结点含有(k-l)个关键字 3.如果要求一个基本线性表既能较快地查找,又能适应动态变化的要求,可以采用( ) 查找方法。 A.分块 B. 顺序 C. 二分 D.散列 4.设有100个元素,用折半查找法进行查找时,最大比较次数是( ),最小比较次数 是( )。 A.7,1 B.6,l C.5,1 D. 8,1 5.散列表长m=15,散列表函数H(key)=key%13。表中已有4个结点:addr(18)=5;addr(32)=6; addr(59)=7; addr(73)=8;其余地址为空,如果用二次探测再散列处理冲突,关键字为109的结点的地址是( )。 A. 8 B. 3 C. 5 D. 4 6.用分块查找时,若线性表中共有729个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分( )个结点最佳。 A. 15 B. 27 C. 25 D. 30 7.散列函数有一个共同性质,即函数值应当以( )取其值域的每个值。 A.同等概率 B. 最大概率 C. 最小概率 D.平均概率 8.设散列地址空间为O..m-1,k为关键字,假定散列函数为h(k)=k%p,为了减少冲突,一般应取p为( )。 A.小于m的最大奇数 B. 小于m的最大素数 C.小于m的最大偶数 D.小于m的最大合数 9.当向一棵m阶的B-树做插入操作时,若使一个结点中的关键字个数等于( ),则必 须分裂成两个结点。 A.m B. m-l C.m+l D.[m+1] 10.当向一棵m阶的B壤f做删除操作时,若使一个结点中的关键字个数等于( ),则可能需要用它的左兄弟或右兄弟结点合并成一个结点。 A. [m/2] B.[m-l] C. [m/2]+1 D. [m+l]-2 11.衡量查找算法效率的主要标准是( )。 A. 元素个数 B. 所需的存储量 C. 平均查找长度 D.算法难易程度 二、填空题 1.顺序查找长度为n的顺序表,查找成功的平均查找长度为____。

数据结构答案_第9章_查找学习与指导

第9章 查找 9.1 知识点分析 1. 基本概念 (1)查找表 由同一类型的数据元素(或记录)构成的集合称为查找表。 (2)静态查找 在查找过程中仅查找某个特定元素是否存在或它的属性的,称为静态查找。 (3)动态查找 在查找过程中对查找表进行插入元素或删除元素操作的,称为动态查找。 (4)关键字 关键字是数据元素(或记录)中某个数据项的值,用它可以标识数据元素(或记录)。关键字分主关键字(唯一地标识一个记录的关键字)和次关键字(标识若干个记录的关键字)。 (5)查找 在查找表中确定是否存在一个数据元素的关键字等于给定值的操作,称为查找(也称为检索)。 (6)内查找、外查找 整个查找过程全部在内存进行,则称为内查找;若在查找过程中还需要访问外存,则称为外查找。 (7)平均查找长度ASL 查找成功时平均查找长度: 其中:P i 为找到表中第i 个数据元素的概率,且有: C i 为查找表中第i 个数据元素所用到的比较次数。不同的查找方法有不同的C i 。 2.顺序查找 顺序查找又称线性查找,是最基本的查找方法之一。顺序查找既适用于顺序表,也适用于链表。顺序查找的基本思想:从表的一端开始,顺序扫描线性表,依次按给定值kx 与关键字(Key )进行比较,若相等,则查找成功,并给出数据元素在表中的位置;若整个表查找完毕,仍未找到与kx 相同的关键字,则查找失败,给出失败信息。 3.二分查找 二分查找也叫折半查找,是一种效率较高的查找方法,但前提是表中元素必须按关键字有序(按关键字递增或递减)排列。二分查找的基本思想:在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键字相等,则查找成功;若给定值小于中间元素的关键字,则在中间元素的左半区继续查找;若给定值大于中间元素的关键字,则在中间元素的右半区继续查找。不断重复上述查找过程,直到查找成功,或所查找的区域无数据元素,查找失败。 4.分块查找 将具有n 个元素的主表分成m 个块(也称为子表),每块内的元素可以无序,但要求块 ∑ =?=n i i i C P ASL 1 11 =∑ =n i i P

数据结构习题第9章

第9章查找 一、选择题 1.在表长为n的链表中进行顺序查找,等概率情况下查找成功的ASL为()。A. n; B. (n+1)/2 C. n+1; D. log2(n+1)-1 2.折半查找有序表(4,6,10,12,20,30,50,70,88,100),若查找元素58,则它将依次与表中()比较大小,查找结果是失败。 A.20,70,30,50 B.30,70,50 C.20,70,50 D.30,88,50 3.对22个记录的有序表作折半查找,查找失败时,至少需要比较()次关键字。A.3 B.4 C.5 D.6 4. 链表适用于()查找。 A.顺序B.折半C.顺序查找和折半D.随机 5. 设哈希表长为14,哈希函数是H(key)=key%11,表中已有数据的关键字为15,38,61,84共四个,现要将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是( ) 。 A.1 B.4 C.6 D.9 6. 适用于折半查找的表的存储方式及元素排列要求为( )。 A.链接方式存储,元素无序B.链接方式存储,元素有序 C.顺序方式存储,元素无序D.顺序方式存储,元素有序 7. 对长度为3的顺序表做顺序查找,若查找第1个元素的概率为1/2.,查找第2个元素的概率为1/3,查找第3个元素的概率为1/6,则成功查找表中任一元素的平均查找长度为()。 A. 5/3 B. 6/3 C. 7/3 D. 8/3 8. 一个哈希表中有n个元素,用哈希法进行查找的平均查找长度为()。 A. O(1) B. O(n) C. O(log2n) D. O(n2) 9. 设哈希表的长度为m,采用除留余数法:H(key)=key % p,一般选择p为()。 A. 等于m B. 大于m的最小质数 C. 小于或等于m的最大质数 D. 小于或等于m的最大合数 10. 哈希表的平均查找长度()。 A. 与处理冲突的方法有关而与表的长度无关 B. 与处理冲突的方法有关且与表的长度有关 C. 与处理冲突的方法无关而与表的长度有关 D. 与处理冲突的方法无关且与表的长度无关 二、填空题 1. 在数据的存放无规律的线性表中进行检索的最佳方法是。 2.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素比较大小。

数据结构第九章查找习题及复习资料

第九章查找 一、选择题 1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n 2. 下面关于二分查找的叙述正确的是 ( ) A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列 B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储 3. 用二分(对半)查找表的元素的速度比用顺序法( ) A.必然快 B. 必然慢 C. 相等 D. 不能确定 4. 具有12个关键字的有序表,折半查找的平均查找长度() A. 3.1 B. 4 C. 2.5 D. 5 5.当采用分块查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 6. 二叉查找树的查找效率与二叉树的( (1))有关, 在 ((2))时其查找效率最低 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。 7. 对大小均为n的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找失 败,它们的平均查找长度是((1)) ,对于查找成功,他们的平均查找长度是((2))供选择的答案: A. 相同的 B.不同的 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. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。 A. LL B. LR C. RL D. RR 11. 下面关于m阶B-树说法正确的是( ) ①每个结点至少有两棵非空子树;②树中每个结点至多有m一1个关键字; ③所有叶子在同一层上; ④当插入一个数据项引起B树结点分裂后,树长高一层。 A.①②③ B. ②③ C. ②③④ D. ③ 12. m阶B-树是一棵( ) A. m叉排序树 B. m叉平衡排序树 C. m-1叉平衡排序树 D. m+1叉平衡排序树 15. 设有一组记录的关键字为{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 16. 关于哈希查找说法不正确的有几个( ) (1)采用链地址法解决冲突时,查找一个元素的时间是相同的 (2)采用链地址法解决冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的 (3)用链地址法解决冲突易引起聚集现象 (4)再哈希法不易产生聚集

数据结构(c语言版)题集答案——第九章_查找

第九章查找 9.25 int Search_Sq(SSTable ST,int key)//在有序表上顺序查找的算法,监视哨设在高下标端 { ST.elem[ST.length+1].key=key; for(i=1;ST.elem[i].key>key;i++); if(i>ST.length||ST.elem[i].keyreturn i; }//Search_Sq 分析:本算法查找成功情况下的平均查找长度为ST.length/2,不成功情况下为ST.length. 9.26 int Search_Bin_Recursive(SSTable ST,int key,int low,int high)//折半查找的递归算法 { if(low>high) return 0; //查找不到时返回0 mid=(low+high)/2; if(ST.elem[mid].key==key) return mid; else if(ST.elem[mid].key>key) return Search_Bin_Recursive(ST,key,low,mid-1); else return Search_Bin_Recursive(ST,key,mid+1,high); } }//Search_Bin_Recursive 9.27 int Locate_Bin(SSTable ST,int key)//折半查找,返回小于或等于待查元素的最后一个结点号{ int *r; r=ST.elem; if(keyelse if(key>=r[ST.length].key) return ST.length; low=1;high=ST.length; while(low<=high) { mid=(low+high)/2; if(key>=r[mid].key&&keyreturn mid; else if(keyelse low=mid; } //本算法不存在查找失败的情况,不需要return 0; }//Locate_Bin 9.28 typedef struct { int maxkey; int firstloc; } Index; typedef struct { int *elem; int length; Index idx[MAXBLOCK]; //每块起始位置和最大元素,其中idx[0]不利用,其内容初始化为{0,0}以利于折半查找

数据结构第九章习题课课案

1.用二分(对半)查找表的元素的速度比用顺序法( ) A.必然快 B. 必然慢 C. 相等 D. 不能确定 2.具有12个关键字的有序表,折半查找的平均查找长度() A. 3.1 B. 4 C. 2.5 D. 5 3.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。 A. 分块查找 B. 顺序查找 C. 折半查找 D. 基于属性4.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) 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) 5. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。 A. LL B. LR C. RL D. RR 7. 下面关于B和B+树的叙述中,不正确的是( ) A. B树和B+树都是平衡的多叉树。 B. B树和B+树都可用于文 件的索引结构。 C. B树和B+树都能有效地支持顺序检索。 D. B树和B+树都能有效地 支持随机检索。 8. m阶B-树是一棵( ) A. m叉排序树 B. m叉平衡排序树 C. m-1叉平衡排序树 D. m+1叉平衡排序树 9. 设有一组记录的关键字为{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 10.下面关于哈希(Hash,杂凑)查找的说法正确的是( ) A.哈希函数构造的越复杂越好,因为这样随机性好,冲突小 B.除留余数法是所有哈希函数中最好的 C.不存在特别好与坏的哈希函数,要视情况而定 D.若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可

数据结构第九章 查找 习题及答案讲课教案

数据结构第九章查找习题及答案

第九章查找 一、选择题 1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n 2. 下面关于二分查找的叙述正确的是 ( ) A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列 B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储 3. 用二分(对半)查找表的元素的速度比用顺序法( ) A.必然快 B. 必然慢 C. 相等 D. 不能确定 4. 具有12个关键字的有序表,折半查找的平均查找长度() A. 3.1 B. 4 C. 2.5 D. 5 5.当采用分块查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成 索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 6. 二叉查找树的查找效率与二叉树的( (1))有关, 在 ((2))时其查找效率最低 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复 杂。 7. 对大小均为n的有序表和无序表分别进行顺序查找,在等概率查找的情况下, 对于查找失败,它们的平均查找长度是((1)) ,对于查找成功,他们的平均查找长度是((2))供选择的答案: A. 相同的 B.不同的 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. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。 A. LL B. LR C. RL D. RR 11. 下面关于m阶B-树说法正确的是( )

数据结构第九章 查找 习题及答案

第九章查找 一、选择题 1、若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B、 n/2 C、 (n+1)/2 D、 n 2、下面关于二分查找的叙述正确的就是 ( ) A、表必须有序,表可以顺序方式存储,也可以链表方式存储 C、表必须有序,而且只能从小到大排列 B、表必须有序且表中数据必须就是整型,实型或字符型 D、表必须有序,且表只能以顺序方式存储 3、用二分(对半)查找表的元素的速度比用顺序法( ) A.必然快 B、必然慢 C、相等 D、不能确定 4、具有12个关键字的有序表,折半查找的平均查找长度( ) A. 3.1 B、 4 C、 2、5 D、 5 5.当采用分块查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据 组成索引块 C、数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D、数据分成若干块,每块(除最后一块外)中数据个数需相同 6、二叉查找树的查找效率与二叉树的( (1))有关, 在 ((2))时其查找效率最低 (1): A、高度 B、结点的多少 C、树型 D、结点的位置 (2): A、结点太多 B、完全二叉树 C、呈单枝树 D、结点太复杂。7、对大小均为n的有序表与无序表分别进行顺序查找,在等概率查找的情况下,对于查找失 败,它们的平均查找长度就是((1)) ,对于查找成功,她们的平均查找长度就是((2))供选择的答案: A、相同的 B、不同的 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、在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。 A、 LL B、 LR C、 RL D、 RR 11、下面关于m阶B-树说法正确的就是( ) ①每个结点至少有两棵非空子树; ②树中每个结点至多有m一1个关键字; ③所有叶子在同一层上; ④当插入一个数据项引起B树结点分裂后,树长高一层。 A. ①②③ B、②③ C、②③④ D、③ 12、 m阶B-树就是一棵( ) A、 m叉排序树 B、 m叉平衡排序树 C、 m-1叉平衡排序树 D、 m+1叉平衡排序树 15、设有一组记录的关键字为{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 16、关于哈希查找说法不正确的有几个( ) (1)采用链地址法解决冲突时,查找一个元素的时间就是相同的 (2)采用链地址法解决冲突时,若插入规定总就是在链首,则插入任一个元素的时间就是 相同的 (3)用链地址法解决冲突易引起聚集现象

相关文档
最新文档