数据结构与算法里,对不同的关键字可能得到同一哈希地址,即key≠key2面f(key1)=f(key2)这种现象称冲突(collision)。具有相同函数值的关键词对该哈希函数来说乘坐同义词。
第1题:
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
【说明】
函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为
typedef struct node {
int key;
struct node * next;
} *LinkedList;
【函数】
int DelA_InsB ( LinkedList La, LinkdeList Lb,int key1,int key2,,int len)
{ LinkedList p,q,s,prep,pres;
int k;
if( ! La->next || ! Lb-> next ||| en <=0)return-1;
p = La -> next;prep = La;
while(p&&p- >key != key1) { /*查找表A中键值为key1的结点*/
prep = p;p = p -> next;
}
if( ! p) return - 1; /*在表A中不存在键值为key1的结点*/
q=p;k=1;
while(q &&(1))} /*表A中不存在要被删除的len个结点*/
(2);k++;
}
if( ! q)return -1; /*表A中不存在要被删除的len个结点*/
s = Lb -> next;(3);
while(s && s -> key != key2) { /*查找表B中键值为key2的结点*/
pres =s;s =s->next;
}
if( ! s) return - t; /*表B中不存在键值为key2的结点*/
(4)=q-> next; /*将表A中的len个结点删除*/
q->next=(5);
pres -> next = p; /*将len个结点移至表B */
return 0;
}
第2题:
A、2
B、3
C、4
D、7
E、8
F、以上都不对
第3题:
A、2
B、3
C、5
D、6
第4题:
第5题:
在哈希查找中,不同关键字值对应到同一哈希地址上的现象称为()
第6题:
设哈希表的地址范围为0~17,哈希函数为:H(key)=key%16。用线性探测法处理冲突,输入关键字序列:(10,24,32,17,31,30,46,47,40,63,49),构造哈希表,试回答下列问题:若查找关键字63,需要依次与哪些关键字进行比较?
第7题:
数据结构与算法中,设哈希表长为14,哈希函数是H(key)=key%11,表中已有数据的关键字为15,38,61,84共四个,现要将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是()。
第8题:
关键字自身作为哈希函数,即H(k)=k,也可自身加上一个常数作为哈希函数,即H(k)=k+C这种构造哈希函数的方式叫()。
第9题:
第10题:
对
错
第11题:
第12题:
对
错
第13题:
此题为判断题(对,错)。
第14题:
采用哈希(或散列)技术构造查找表时,需要考虑冲突(碰撞)的处理,冲突是指______。
A.关键字相同的记录被映射到不同的哈希地址
B.关键字依次被映射到编号连续的哈希地址
C.关键字不同的记录被映射到同一个哈希地址
D.关键字的数目超过哈希地址的数目
A.
B.
C.
D.
第15题:
●若采用链地址法对关键字序列(74,10,23,6,45,38,18)构造哈希表(或散列表),设散列函数为H(Key)=Key % 7(%表示整除取余运算),则哈希表中地址为(42)的单链表长度为0(即没有关键字被映射到这些哈希地址)。
(42) A. 0、1和2
B.1、2和3
C.1、3和5
D.0、1和5
第16题:
第17题:
设哈希(散列)表表长为15(哈希地址为0~14),哈希函数为H(key)=key%11,冲突处理采用线性探测Hi=(H(key)+1)%11,则将一列数15,20,26,30,35,40存储该哈希表,元素40的哈希地址为()
第18题:
数据结构与算法里,若对于关键字集合中的任何一个关键字,经哈希函数映像到地址集合中任何一个地址的概率是相等的。则称此类哈希函数为均匀的(Uniform)哈希函数。
第19题:
已知下列各种初始状态(长度为n)的元素,试问当利用直接插入排序进行排序时,至少需要进行多少次比较(要求排序后的记录由小到大顺序排列)? ⑴关键码从小到大有序(key1< key2< …< keyn)。 ⑵关键码从大到小有序(key1> key2 >…> keyn)。 ⑶奇数关键码顺序有序,偶数关键码顺序有序(key1< key3< …,key2key4…)。 ⑷前半部分元素按关键码顺序有序,后半部分元素按关键码顺序有序,即:(key1< key2< …< keym,keym+1< keym+2 <…)
第20题:
关于哈希函数,以下说法错误的是()。
第21题:
第22题:
对
错
第23题: