在散列函数H(key)=key%p,p应取()。A.整数B.偶数C.素数D.小数
在散列函数H(key)=key%p,p应取()。
A.整数
B.偶数
C.素数
D.小数
参考答案和解析
小于m的最大素数
相关考题:
●试题三阅读下列函数说明和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||len<=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 -1;/*表B中不存在键值为key2的结点*/(4) =q->next;/*将表A中的len个结点删除*/q->next= (5) ;pres->next=p;/*将len个结点移至表B*/return 0;}
阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。[函数6说明]函数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;[函数6]int DelA InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len){ LinkedListp,q,s,prep,pres;int k;if(! La->next‖! Lb->next‖->next‖len<=0)return-1;p=La->next;prep=La;while(pp->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 s->key!=key2){ / * 查找表B中键值为key2的结点 * /pres=s;s=s->next;}if(! s)return-1; / * 表B中不存在键值为key2的结点 * /(4)=q->next; / * 将表A中的len个结点删除 * /q->next=(5);pres->next=p; / * 将len个结点移至表B * /return 0;}
已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key)=key%7计算散列地址,并散列存储在散列表A[0…6]中,若采用线性探测法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为(63)。A.1.4B.1.6C.2.0D.2.2
● 若线性表(24, 13, 31, 6, 15, 18, 8)采用散列(Hash)法进行存储和查找,设散列函数为 H(Key)=Key mod 11,则构造散列表时发生冲突的元素为 (36) 。 (其中的 mod表示整除取余运算)(36)A. 24 和 13B. 6 和 15C. 6 和 24D. 18 和 8
阅读下列函数说明和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(pp- >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;}
设散列地址空间为0~m-1,key为关键字,用p去除key,将得到的余数作为key的散列地址,即h(key)=key%p。为了减少发生冲突的频率,一般取p为()。 A小于等于m的最大奇数B小于等于m的最大偶数C小于等于m的最大素数D小于等于m的最大合数
设散列函数H(key)=key MOD 7,用线性探测再散列法解决冲突。对关键字序列{13,28,72,5,16,8,7,9,11,29}在地址空间为0-10的散列区中建散列表,画出此表,并求等概率情况下查找成功时的平均查找长度。
当采用除留余数法构造散列函数时,即h(key)=key mod p,若要将发生冲突现象的频率降至最低,p最好是( )(设散列表的长度为m)。A.小于m的最大偶数B.大于m的最小基数C.小于m的最大素数D.大于m的最小偶数
对关键码序列(12,24,15,56,20,87,69,9)采用散列法进行存储和查找,并设散列函数为H(Key)=Key%11(%表示整除取余运算)。采用线性探查法(顺序地探查可用存储单元)解决冲突所构造的散列表为()。A.B.C.D.
● 若线性表(23, 14, 45, 12, 8, 19, 7)采用散列法进行存储和查找。设散列函数为H(Key)=Key mod 7并采用线性探查法(顺序地探查可用存储单元)解决冲突,则构造的散列表为 (38) ,其中,mod表示整除取余运算。
某哈希表(散列表)的长度为n,改散列函数为H(Key) = Key mod p,采用线性探测法解决冲突。以下关于P值的叙述中,正确的是(61)。A.p的值一般为不大于n且最接近n的质数B.p 的值一般为大于n的任意整数C.p 的值必须为小于n的合数D.p 的值必须等于n
试题三(共15分)阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】函数Insert _key (*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回0;否则申请新结点、存入key的值并将新结点加入树中,返回l。提示:二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树:●若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值;●若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值;●左、右子树本身就是二叉查找树。设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:typedef struct BiTnode{int key _value; /*结点的键值,为非负整数*/struct BiTnode *left,*right; /*结点的左、右子树指针*/}BiTnode, *BSTree;【C函数】int Insert _key( BSTree *root,int key){BiTnode *father= NULL,*p=*root, *s;while( (1)&&key!=p-key_value){/*查找键值为key的结点*/father=p;if(key p-key_value)p= (2) ; /*进入左子树*/else p= (3) ; /木进入右子树*/}if (p) return 0; /*二叉查找树中已存在键值为key的结点,无需再插入*/s= (BiTnode *)malloc( (4) );/*根据结点类型生成新结点*/if (!s) return -1;s-key_value= key; s-left= NULL; s-right= NULL;if( !father)(5) ; /*新结点作为二叉查找树的根结点*/else /*新结点插入二叉查找树的适当位置*/if( key father-key_value)father-left = s;elsefather-right = s;retum 1:}
设哈希(散列)表表长为15(哈希地址为0~14),哈希函数为H(key)=key%11,冲突处理采用线性探测Hi=(H(key)+1)%11,则将一列数15,20,26,30,35,40存储该哈希表,元素40的哈希地址为()
问答题设关键字序列为(71,12,88,53,11,25,65,27,16),散列函数为H(key)= key % 7,采用链地址法解决冲突。请回答:查找关键字88时,需要依次与哪些关键字比较。
填空题设哈希(散列)表表长为15(哈希地址为0~14),哈希函数为H(key)=key%11,冲突处理采用线性探测Hi=(H(key)+1)%11,则将一列数15,20,26,30,35,40存储该哈希表,元素40的哈希地址为()
问答题设关键字序列为(71,12,88,53,11,25,65,27,16),散列函数为H(key)= key % 7,采用链地址法解决冲突。请回答:请求等概率下查找成功的平均查找长度ASL
填空题若待散列的序列为(18,25,63,50,42,32,9),散列函数为H(key)=keyMOD9,与18发生冲突的元素有()个。