网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)
在静态散列中,如果我们插入一条记录,而桶没有足够的空间,就会发生( )。

A.桶分裂

B.数据丢失

C.桶合并

D.桶溢出


参考答案

更多 “ 在静态散列中,如果我们插入一条记录,而桶没有足够的空间,就会发生( )。 A.桶分裂B.数据丢失C.桶合并D.桶溢出 ” 相关考题
考题 在数据库中可用多种结构组织数据,散列文件是其中一种。关于散列文件,下列说法错误的是______。A.为了防止桶溢出,在散列文件设计时,需要预留一些空间大小不固定的桶B.用散列文件组织数据时,需要使用文件记录中的一个或多个域作为查找码C.如果散列文件中散列函数的“均匀分布性”不好,可能会造成桶溢出D.好的散列函数产生的存储地址分布应尽可能是随机的

考题 在数据库中可用多种结构组织数据,散列文件是其中一种。关于散列文件,下列说法错误的是______。A) 为了防止桶溢出,在散列文件设计时,需要预留一些空间大小不固定的桶B) 用散列文件组织数据时,需要使用文件记录中的一个或多个域作为查找码C) 如果散列文件中散列函数的“均匀分布性”不好,可能会造成桶溢出D) 好的散列函数产生的存储地址分布应尽可能是随机的A.B.C.D.

考题 以下说法错误的是______。A) 文件可以组织为散列文件B) 散列函数的输入为文件记录的查找码值C) 散列函数的输出可以是桶号D) 桶可以是磁盘块,但不可以是比磁盘块大的空间A.B.C.D.

考题 以下关于桶溢出的说法错误的是______。A) 如果某个桶内已装满记录,又有新的记录要插入到该桶,就会产生桶溢出B) 桶溢出也称为散列碰撞C) 桶溢出的可能原因是文件初始设计时,为文件记录预留存储空间不足,预留的桶数偏少D) 桶溢出的可能原因是没有溢出处理机制A.B.C.D.

考题 散列是一种快速查找的技术,以下关于散列说法错误的是______。A.文件可以组织为散列文件B.散列函数的输入为文件记录的查找码值C.散列函数的输出可以是桶号D.桶可以是磁盘块,但不可以是比磁盘块大的空间

考题 阅读下列函数说明、图和C代码,将应填入(n)处的字句。[说明]散列文件的存储单位称为桶(BUCKET)。假如一个桶能存放m个记录,当桶中已有 m个同义词(散列函数值相同)的记录时,存放第m+1个同义词会发生“溢出”。此时需要将第m+1个同义词存放到另一个称为“溢出桶”的桶中。相对地,称存放前m个同义词的桶为“基桶”。溢出桶和基桶大小相同,用指针链接。查找指定元素记录时,首先在基桶中查找。若找到,则成功返回,否则沿指针到溢出桶中进行查找。例如:设散列函数为Hash(Key)=Key mod 7,记录的关键字序列为15,14,21,87,97,293,35,24,149,19,63,16,103,77,5,153,145,356,51,68,705,453,建立的散列文件内容如图4-1所示。[图4-1]为简化起见,散列文件的存储单位以内存单元表示。函数InsertToHashTable(int NewElemKey)的功能是:将元素NewEIemKey插入散列桶中,若插入成功则返回0,否则返回-1。采用的散列函数为Hash(NewElemKey)=NewElemKey % P,其中P为设定的基桶数目。函数中使用的预定义符号如下:define NULLKEY -1 /*散列桶的空闲单元标识*/define P 7 /*散列文件中基桶的数目*/define ITEMS 3 /*基桶和溢出桶的容量*/typedef struct BucketNode{ /*基桶和溢出桶的类型定义*/int KcyData[ITEMS];struct BucketNode *Link;}BUCKET;BUCKET Bucket[P]; /*基桶空间定义*/[函数]int lnsertToHashTable(int NewElemKey){/*将元素NewElemKey插入散列桶中,若插入成功则返回0,否则返回-1*//*设插入第一个元素前基桶的所有KeyData[]、Link域已分别初始化为NULLKEY、NULL*/int Index; /*基桶编号*/int i,k;BUCKET *s,*front,*t;(1) ;for(i=0; i<ITEMS;i++)/*在基桶查找空闲单元,若找到则将元素存入*/if(Bucket[Index].KeyData[i]=NULLKEY){Bucket[Index].KeyData[i]=NewElemKey; break;}if( (2) ) return 0;/*若基桶已满,则在溢出桶中查找空闲单元,若找不到则申请新的溢出桶*/(3) ; t=Bucket[Index].Link;if(t!=NULL) {/*有溢出桶*/while (t!=NULL){for(k=0; k<ITEMS; k++)if(t->KeyData[k]=NULLKEY){/*在溢出桶链表中找到空闲单元*/t->KeyData[k]=NewElemKey; break;}/*if*/front=t;if( (4) )t=t->Link;else break;}/*while*/}/*if*/if( (5) ) {/*申请新溢出桶并将元素存入*/s=(BUCKET*)malloe(sizeof(BUCKET));if(!s) return-1;s->Link=NULL;for(k=0; k<ITEMS; k++)s->KeyData[k]=NULLKEY;s->KeyData[0]=NewElemKey;(6) ;}/*if*/return 0;}/*InsertToHashTable*/

考题 散列文件组织将文件的物理空间划分为一系列的桶,每个桶的空间大小是固定的,可以容纳的文件记录也是固定的,如果某个桶内已经装满记录.又有新的记录插入就会产生桶溢出,产生桶溢出的2个主要原因为 (12) 和 (13) 。12.

考题 阅读以下函数说明、图和C程序代码,将C程序段中(1)~(6)空缺处的语句填写完整。[说明]散列文件的存储单位称为桶(BUCKET)。假如一个桶能存放m个记录,当桶中已有m个同义词(散列函数值相同)的记录时,存放第m+1个同义词会发生“溢出”。此时需要将第m+1个同义词存放到另一个称为“溢出桶”的桶中。相对地,称存放前m个同义词的桶为“基桶”。溢出桶和基桶大小相同,用指针链接。查找指定元素记录时,首先在基桶中查找。若找到,则成功返回,否则沿指针到溢出桶中进行查找。例如,设散列函数为Hash(Key)=Key mod7,记录的关键字序列为15,14,21,87,96,293,35,24, 149,19,63,16,103,77,5,153,145,356,51,68,705,453,建立的散列文件内容如图2-27所示。为简化起见,散列文件的存储单位以内存单元表示。函数InsertToHashTable(int NewElemKey)的功能是:若新元素NewElemKey正确插入散列文件中,则返回值0;否则返回值-1。采用的散列函数为Hash(NewElemKey)=NewElemKey%P,其中P设定基桶的数目。函数中使用的预定义符号如下。

考题 阅读以下函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。【说明】散列文件的存储单位称为桶(BUCKET)。假如一个桶能存放m个记录,当桶中已有m个同义词(散列函数值相同)的记录时,存放第m+1个同义词会发生“溢出”。此时需要将第m+1个同义词存放到另一个称为“溢出桶”的桶中。相对地,称存放前m个同义词的桶为“基桶”。溢出桶和基桶大小相同,用指针链接。查找指定元素记录时,首先在基桶中查找。若找到,则成功返回,否则沿指针到溢出桶中进行查找。例如:设散列函数为Hash(Key)=Key mod 7,记录的关键字序列为15,14,21,87,96, 293,35,24,149,19,63,16,103,77,5,153,145,356,51,68,705,453,建立的散列文件内容如图5-3所示。为简化起见,散列文件的存储单位以内存单元表示。函数InsertToHashTable(int NewElemKey)的功能是;若新元素NewElemKey正确插入散列文件中,则返回值1;否则返回值0。采用的散列函数为Hash(NewElemKey)=NewElemKey % P,其中P为设定的基桶数目。函数中使用的预定义符号如下:define NULLKEY-1 /*散列桶的空闲单元标识*/define P 7 /*散列文件中基桶的数目*/define ITEMS 3 /*基桶和溢出桶的容量*/typedef struet BucketNode{ /*基桶和溢出桶的类型定义*/int KeyData[ITEMS];struct BucketNode *Link;}BUCKET;BUCKET Bucket[P]; /*基桶空间定义*/【函数5-3】int InsertToHashTable(int NewElemKey){/*将元素NewElemKey插入散列桶中,若插入成功则返回0,否则返回-1*//*设插入第一个元素前基桶的所有KeyData[],Link域已分别初始化为NULLKEY、NULL*/int Index; /*基桶编号*/int i,k'BUCKET *s,*front,*t;(1);for(i=0;i<ITEMS;i++) /*在基桶查找空闲单元,若找到则将元素存入*/if(Bucket[Index].KeyData[i]==NULLKEY){Bucket[Index].KeyData[i]=NewElemKey;break;}if((2))return 0;/* 若基桶已满,则在溢出桶中查找空闲单元,若找不到则申请新的溢出桶*/(3);t=Bucket[Index].Link;if(t!=NULL){ /*有溢出桶*/while(t!=NULL){for(k=0;k<ITEMS;k++)if(t->KeyData[k]==NULLKEY){/* 在溢出桶链表中找到空闲单元*/t->KeyData[k]=NewElemKey;break;}/*if*/front=t;if((4))t=t->Link;else break;}/*while*/}/*if*/if((5)){ /* 申请新溢出桶并将元素存入*/s=(BUCKET *)malloc(sizeof(BUCKET));if(!s)retum -1;s->Link=NULL;for(k=0;k<ITEMS;k++)s->KeyData[k]=NULLKEY;s->KeyData[0]=NewElemKey;(6);}/*if*/return 0;}/*InsertToHashTable*/