在散列文件中,同一个桶内的所有记录应当具有()。A、相同的关键字B、相同的散列值C、相同的某个属性值D、相同的存取频率
在散列文件中,同一个桶内的所有记录应当具有()。
- A、相同的关键字
- B、相同的散列值
- C、相同的某个属性值
- D、相同的存取频率
相关考题:
●散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址。因为散列函数不是一对一的关系,所以选择好的 (35) 方法是散列文件的关键。(35) 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*/
单选题同一个表所有备注字段的内容存储在()A该表文件中B不同的备注文件C同一个备注文件D同一个数据库文件