数据结构与算法-选择题
选择题
-
在数据结构与算法中,从逻辑上可以把数据结构分为(线性结构和非线性结构)
-
数据元素可以细分为(数据项)
-
如果说线性结构中元素之间的关系是一对一,则树结构中元素之间的关系是(一对多)
-
在数据结构中,数据元素之间一对一的关系称为(线性结构)
-
数据结构常用的存储方式为(顺序存储方式,链式存储方式,散列存储方式)
-
算法分析要评估两个主要的方面是(时间复杂度和空间复杂度)
-
定义抽象类型(给出类型的名字,定义类型上的操作,用某种语言描述抽象数据类型)不需要实现类型上的操作
-
下列算法的时间复杂度中,算法效率最低的是__C__。
A.O(n) B.O(n2) C.O(2n) D.O(log n)
-
设n是描述问题规模的非负整数,下面程序片段的时间复杂度是___A___。
x=2;
while(x<n/2)
x=2*x;
A.O(log2n) B.O(n) C.O(n log2n) D.O(n2)
-
设计求斐波那契数列前n项的算法时,适宜使用的算法策略是___B___。
A.分治法 B.递推法 C.递归法 D.穷举法
-
链表的特点(插入和删除时不需要移动元素,不必事先估计存储空间,所需空间与元素个数成正比)
-
下列关于线性表的叙述中,错误的是___B___。
A.线性表采用链式存储方式,便于进行插入和删除操作
B.线性表采用顺序存储方式,便于进行插入和删除操作
C.线性表采用链式存储方式,不必占用一片连续的存储单元
D.线性表采用顺序存储方式,必须占用一片连续的存储单元
-
若一个线性表分别采用下列存储结构进行存储中,则读取一个指定位置(序号)的元素所花费时间最少的是_A_。
A.顺序表 B.单向链表 C.双向链表 D.循环链表
-
线性表的基本概念:在数据结构中,线性表是有限元素序列
-
若线性表L最常用的操作是访问任一位置的元素和在最后进行插入和删除运算,为使操作的时间复杂度好,则下列选项中,为L选择的存储结构为__A__。
A.顺序表 B.双向链表
C.带头结点的双向循环链表 D.单循环链表
-
线性表L中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,为使操作的时间复杂度好,则下列选项中,为L选择的存储结构为_D_。
A.单链表 B.仅有头指针的单循环链表
C.双向链表 D.仅有尾指针的单循环链表
-
为了提供全程对号的高速铁路售票系统,保证每一位旅客从上车到下车期间都有独立座位,短途乘客下车后该座位可以销售给其他乘客,铁路公司设计了基于内存的系统,系统中需要描述座位信息和每个座位的售票情况。保存座位信息和每个座位售票情况的数据结构分别是__B__。
A.数组,数组 B.数组,链表
C.链表,数组 D.链表,链表
-
若长度为n的线性表采用顺序存储结构,则在其第i(0≤i≤n)个位置插入一个新元素的算法的时间复杂度为_C_。
A.O(1) B.O(i) C.O(n) D.O(n2)
-
对于含n个元素采用顺序存储的线性表,访问位置i(0≤i≤n-1)处的元素和在位置i(0≤i≤n)插入元素的时间复杂度分别为_C_。
A.O(n)和O(n) B.O(n)和O(1) C.O(1)和O(n) D.O(1)和O(1)
-
线性表(a0,a1,…,an-1)以链接方式存储时,访问位置i的元素的时间复杂度为____D____。
A.O(1) B.O(i-1) C.O(i) D.O(n)
-
在带头结点的非空单循环链表head中,指向尾结点的指针p满足的条件是____C____。
A.p == ==NULL B.p == ==head
C.p->nexthead D.p->nextNULL
-
带头结点的单链表head为空的判定条件是___D_____。
A.head==NULL B.head!=NULL
C.head->nexthead D.head->nextNULL
-
在双向循环链表中,在指针p所指结点之后插入指针s所指结点的操作是____D____。
A.p->next=s;s->prev=p;p->next->prev=s;s->next=p->next;
B.p->next =s;p->next->prev=s; s->prev=p;s->next=p->next;
C.s->prev=p; s->next=p->next; p->next=s; p->next->prev=s;
D.s->prev=p; s->next=p->next;p->next->prev=s; p->next=s;
-
在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行的操作是_D_。
A.s->next=p->next;p->next=s; B.p->next=s->next; s->next=p;
C.q->next=s;s->next=p; D.p->next=s;s->next=q;
-
在一个单链表中,若p所指结点不是终端结点,在p所指结点之后插入s所指结点,则执行的操作是__B__。
A.s->next=p;p->next=s; B.s->next=p->next; p->next=s;
C.s->next=p->next; p=s; D.p->next=s;s->next=p;
-
下列关于带头结点的单向循环链表L的叙述中,正确的是___A_____。
A.L中最后一个结点的指针域要指向头结点
B.循环链表的长度为L中数据元素个数加1
C.因为L是环形的,所以无法计算链表长度
D.L中最后一个结点的指针域指向首个数据结点
-
若一个栈存储在数组V[n]中,设栈空时栈顶指针top=n-1,则下列选项中,能正确表示x入栈的是_C_。
A.top=top+1;V[top]=x; B.V[top]=x;top=top+1;
C.V[top]=x;top=top-1;
-
用不带头结点的单链表存储队列时,队头指针指向队头结点,队尾指针指向队尾结点,则在进行删除操作时_D_。
A.仅需要修改队头指针,不需要修改队尾指针
B.仅需要修改队尾指针,不需要修改队头指针
C.队头指针一定要修改,队尾指针也一定要修改
D.队头指针一定要修改,队尾指针可能要修改
-
下列链队列的操作中,不可能修改队尾指针的是_D_。
A.入队操作 B.清空队列操作
C.出队操作 D.判队列是否为空
入队操作肯定会修改队尾指针。出队操作通常仅修改队头指针,但如果出队后队列为空,则也会修改队尾指针。清空队列的操作既修改队头指针,也修改队尾指针。而判队列是否为空,仅需要查看指针的值,不会进行修改。
-
循环队列Q(最多元素为MaxSize),front指向队头元素所在位置,rear指向队尾元素后的空位置,则循环队列为满的条件是_D_。
A.Q.rear==Q.front B.Q.rear+1 ==Q.front
C.Q.rearQ.front+1 D.(Q.rear+1)%MaxSizeQ.front
-
用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时应进行的操作是________。
A.仅修改头指针 B.头、尾指针均不需要修改
C.仅修改尾指针 D.头、尾指针都可能要修改
答案:D。
出队操作肯定要修改队头指针,如果出队后队列为空,则队尾指针也要修改。
-
假设以数组A[0…m-1]存放循环队列的元素,队头指针front指向队头元素,队尾指针rear指向队尾元素后的空位置,则当前队列中的元素个数为__A__。
A.(rear-front+m)%m B.rear-front+1
C.(front-rear+m+1)%m D.(rear-front)%m
-
栈和队列的共同点是_C_。
A.都是后进先出 B.都是先进先出
C.只允许在端点处插入和删除元素 D.没有共同点
-
循环队列存储在数组A[0…m]中,入队时修改队尾指针的操作为_D_。
A.rear=rear+1 B.rear=(rear+1)%(m-1)
C.rear=(rear+1)%m D.rear=(rear+1)%(m+1)
-
若用一个大小为6的数组来实现循环队列,且当前队尾rear和队头front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为____B____。
A.1和5 B.2和4 C.4和2 D.5和1
-
某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。若元素a,b, c,d,e依次入此队列后再进行出队操作,则不可能得到的出队序列是________。
A.b,a,c,d,e B.d,b,a,c,e C.d,b,c,a,e D.e,c,b,a,d
答案为C。
-
假定一个二维数组的定义语句为int a[3][4]={{3,4},{2,8,6}};,则元素a[1][2]的值为____B____。
A.8 B.6 C.4 D.2
-
在C语言中,设有数组定义:char array[ ]=“China”;,则数组array所占用的空间为________。
A.4个字节 B.5个字节 C.6个字节 D.7个字节
答案:C。
-
关于主对角线(从左上角到右下角)对称的矩阵为对称矩阵;如果一个矩阵中的各个元素取值为0或1,那么该矩阵可称为0-1矩阵。大小为n´n的0-1对称矩阵的个数是________。
A.pow(2,n) B.pow(2,n´n/2)
C.pow(2,(n´n+n)/2) D.pow(2,(n´n-n)/2)
答案:C。
-
有一个二维数组A[10][5],每个数据元素占1个字节,按行主序保存,且A[0][0]的存储地址是1000,则A[i][j]的地址是________。
A.1000+10i+j B.1000+i+j C.1000+5i+j D.1000+10i+5j
答案:C。
-
数组通常具有的两种基本操作是________。
A.查找和修改 B.查找和索引 C.索引和修改 D.建立和删除
答案:A。
-
将一个A[1…100, 1…100]的三对角矩阵以行主序存入一维数组B[1…298]中,元素a[66, 65]在数组B中的位置k等于________。
A.195 B.196 C.197 D.198
答案:A。
对于三对角矩阵,采用压缩存储时只保存主角线及两条副对角线中的元素,按行主序保存时,除第一行和最后一行外,每行需保存3个元素。在保存a[66, 65]前,已经在B中保存了前65行的元素,元素个数=2+64*3=194,a[66, 65]是第195个元素。
-
.若采用三元组顺序表保存m´n有t个非零元素的稀疏矩阵A,则对矩阵A求转置的快速算法,最好能够达到的时间复杂度是________。
A.O(n) B.O(n+t) C.O(m´n) D.O(m´n´t)
答案:B。
-
下列选项中,适合采用三元组表存储的是_D_。
A.单向链表 B.双向链表 C.循环队列 D.稀疏矩阵
-
若稀疏矩阵采用三元组顺序表进行存储,除保存非零元素的信息之外,还需要保存的是
A.矩阵的行数、列数 B.矩阵的非零元素数量
C.矩阵的行数和非零元素数 D.矩阵的行数、列数和非零元素数
答案:D。
-
下面关于非空广义表的叙述中,错误的是________。
A.广义表的表头一定不为空表 B.广义表是一个多层次的线性结构
C.广义表的表尾总是一个广义表 D.广义表中的数据元素有相对次序
答案:A。
当L=(())时,L非空,且表头是空表。
-
下列关于广义表L的叙述中,正确的是________。
A.Tail(L)可以为空表 B.广义表不能是递归表
C.广义表L=()的长度为1 D.Head(L)的深度一定为0
答案:A。
当L中只有一个元素时,L的表尾即是空表。广义表可以是递归表,而空表的长度为0,深度为1。如果L的表头不是原子,则表头的深度不是0
-
下列关于广义表的基本概念中,错误的是________。
A.广义表中可包含原子和子表 B.空的广义表( )的长度为0
C.广义表的表头为一个子表 D.可以用广义表表示二叉树
答案:C。
-
已知广义表LS=(((a)),((b,©),(d,(e,f))),()),LS的长度是________。
A.2 B.3 C.4 D.5
答案:B。
-
已知广义表LS=(((a)),((b,©),(d,(e,f))),()),LS的深度是________。
A.2 B.3 C.4 D.5
答案:C。
-
已知广义表LS=(((a)),((b,©),(d,(e,f))),()),Head(LS)的值是________。
A.( ) B.a C.(a) D.((a))
答案:D。
-
已知广义表LS=(((a)),((b,©),(d,(e,f))),()),Tail(LS)的值是________。
A.( ) B.(((b,©),(d,(e,f))),())
C.((b,©),(d,(e,f)))
-
下列关于二叉树的叙述中,正确的是________。
A.二叉树的度为2 B.一棵二叉树的度可以小于2
C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2
答案:B。
-
下列存储形式中,不是树的存储形式的是________。
A.父结点表示法 B.孩子结点表示法
C.孩子-兄弟表示法 D.顺序存储表示法
答案:D。
-
下列关于二叉树的叙述中,正确的是________。
I.只有一个结点的二叉树的度为0
II.二叉树的度为2
III.二叉树的左右子树可任意交换
IV.深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树
A.仅I、IV B.仅II、IV C.仅I、II、III D.仅II、III、IV
答案:A。
-
一棵二叉树共有20个结点,其中度为l的结点个数是7个,则叶结点个数是________。
A.4 B.7 C.9 D.13
答案:B。
二叉树中,设n0是叶结点的个数,n1是度为1的结点的个数,n2是度为2的结点的个数,由性质3可知,n0=n2+1,由题目条件知n1=7,则n0+n2=20-n1=13,解得n0=7。
-
深度为4的二叉树中,结点个数最多是________。
A.10 B.16 C.31 D.32
答案:C。
相同高度的满二叉树中结点个数最多。深度为4的满二叉树的高度是5。
-
对含n个结点的完全二叉树从上到下且从左至右进行1至n编号,根结点编号为1,则对树中任意一个编号为i的结点,正确的是________。
A.若2i >= n,则结点i无左子结点
B.若2i+1 >= n,则结点i无右子结点
C.若i为偶数,则i是其父结点的左子结点
D.若i为奇数,则i是其父结点的右子结点
答案:C。
按照题目中给出的编号规则,结点i的左子结点是2i,右子结点是2i+1,故选项A和B中,不等式中取等号时,结论是错误的。反过来看,偶数编号的结点是其父结点的左子结点,奇数编号的结点是其父结点的右子结点,唯一的例外是根结点,根的编号是奇数,没有父结点,所以选项D也是错误的。
-
采用顺序存储方式保存一棵二叉树,根结点保存在数组的A[0]中,若编号为i结点有右子结点,则该子结点的下标为________。
A.2i-1 B.2i C.2i+1 D.2i+2
答案:D。
基本概念。下标从0开始
-
在一非空二叉树的中序遍历序列中,根结点的右边________。
A.只有左子树上的所有结点 B.只有右子树上的所有结点
C.只有左子树上的部分结点 D.只有右子树上的部分结点
答案:B。
中序遍历序列中,根的前面是左子树中所有结点的中序遍历序列,后面是右子树中所有结点的中序遍历序列。
-
若一棵满二叉树有m个叶结点,n个结点,高度为h,则下列关系式中正确的是________。
A.h+m2n B.nh+m C.m==h-1 D.n==2*h*-1
答案:D。
满二叉树中,高度为h时,结点个数n=2*h*-1。
-
一棵二叉树高度为h,所有结点的度或为0或为2,则这棵二叉树的结点数最少为________。
A.h+1 B.2*h-1 C.2h* D.2*h*+1
答案:B。
-
设n、m为二叉树T中的两个结点,在中序遍历序列中,n出现在m之前的条件是________。
A.n在m左侧 B.n在m右侧 C.n是m子孙 D.n是m祖先
答案:A。
-
由3个结点可以构造出不同形态的二叉树的数量是________。
A.3个 B.4个 C.5个 D.6个
答案:C。
-
下列四个序列中,能构成最大堆的是________。
A.75,65,30,15,25,45,20,10 B.75,65,45,10,30,25,20,15
C.75,45,65,30,15,25,20,10 D.75,45,65,10,25,30,20,15
答案:C。
-
在13题的最大堆中删除堆顶后,得到的最大堆是________。
A.65,30,15,25,45,20,10 B.65,45,25,30,15,10,20
C.65,45,30,15,25,20,10 D.65,45,10,25,30,20,15
答案:B。
-
在13题的最大堆中插入新元素55后,得到的最大堆是________。
A.75,55,65,45,15,25,20,10,30 B.75,65,55,45,10,30,25,20,15
C.75,55,45,65,30,15,25,20,10 D.75,45,65,55,10,25,30,20,15
答案:A。
-
与树的后根遍历序列相同的是对应二叉树的________。
A.先序遍历序列 B.中序遍历序列
C.后序遍历序列 D.按层遍历序列
答案:B。
-
设森林F中有3棵树,第1棵、第2棵和第3棵树的结点个数分别为M1、M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是________。
A.M1 B.M3 C.M1+M2 D.M2+M3
答案:D。
森林F中的第2棵和第3棵树将转换为对应二叉树的右子树。所以二叉树根结点右子树上的结点个数等于第2棵和第3棵树中的结点个数之和。
-
一个非空二叉树的先序遍历序列与后序遍历序列正好互为逆序序列,则该二叉树的形状应为________。
A.从树根结点开始左右子树相互对称 B.所有非叶结点只有向左的一个分支
C.所有非叶结点只有向右的一个分支 D.所有非叶结点全部是度为1的结点
答案:D。
二叉树退化为单链树时,先序遍历序列与后序遍历序列正好互为逆序序列。
-
设给定权值总数为n个,用其构造的哈夫曼树的结点总数为________。
A.不确定 B.2n-1 C.2n D.2n+1
答案:B。
给定的权值为n个,意味着哈夫曼树中的叶子结点个数为n个。哈夫曼树中没有度为1的结点,由满二叉树定理可知,度为2的结点个数比叶结点个数少1,为n-1,故哈夫曼树中结点总数为n+n-1=2n-1。
-
下列编码集中,不具有前缀特性的是________。
A.{0,10,110,1111} B.{00,10,011,110,111}
C.{00,010,0110,1000} D.{10,11,001,101,0001}
答案:D。
对于选项D中给出的编码方案,10是101的前缀,所以不具有前缀特性。对于其他3种编码方案,可以分别画出对应的编码树,以验证它们都具有前缀特性。例如,选项A所示编码方案对应的编码树树形如图5-4所示,可以看出,编码对应的各结点都是叶结点,以方形结点表示。
-
一棵哈夫曼树共有215个结点,则树中编码的字符个数是_B_。
A.107 B.108 C.215 D.214
2n - 1 = 215
-
设无向图的顶点个数为n,则该图所含的边数最多是________。
A.n-1 B.n(n-1)/2 C.n(n+1)/2 D.n2
答案:B。
-
n个顶点的连通无向图中,边数至少是________。
A.n-1 B.n C.n+1 D.nlogn;
答案:A。
-
下列叙述中错误的是________。
A.图的深度优先搜索遍历是一个递归过程
B.图的深度优先搜索遍历不适用于有向图
C.深度优先遍历和广度优先遍历是图遍历的两种基本算法
D.图的遍历是从给定的顶点出发每一个顶点仅被访问一次
答案:B。
图的深度优先搜索和广度优先搜索是图遍历的两种基本策略(选项C正确)。深度优先搜索通常采用递归方式实现(选项A正确),既适用于对无向图的遍历,也适用于对有向图的遍历(选项B错误)。选项D是图遍历的定义。
-
无向图G=(V,E),其中,V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列是________。
A.a,b,e,c,d,f B.a,c,f,e,b,d C.a,e,b,c,f,d D.a,e,d,f,c,b
答案:D。
-
已知有向图G=(V,E),其中V={v1,v2,v3,v4,v5,v6,v7},E={(v1,v2),(v1,v3),(v1,v4), (v2,v5),(v3,v5),(v3,v6),(v4,v6),(v5,v7),(v6,v7)},G的拓扑序列是________。
A.v1,v3,v4,v6,v2,v5,v7 B.v1,v3,v2,v6,v4,v5,v7
C.v1,v3,v4,v5,v2,v6,v7 D.v1,v2,v5,v3,v4,v6,v7
答案:A。
-
在有向图G的拓扑排序中,若顶点v*i在顶点vj*之前,则下列情形不可能出现的是________。
A.G中有弧(vi,vj) B.G中有一条从v*i到vj*的路径
C.G中没有弧(vi,vj) D.G中有一条从v*j到vi*的路径
答案:D。
在拓扑排序中,若有一条从v*j到vi的路径,则表明vj是vi的先决条件,必须先完成vj后才能开始vi,那么在拓扑排序中,顶点vi不可能出现在顶点vj*之前。
-
下列关于稳定排序方法的叙述中,正确的是________。
I.该排序算法可以处理相同的关键字
II.该排序算法不可以处理相同的关键字
III.该排序算法处理相同的关键字时能确定它们的排序结果
IV.该排序算法处理相同的关键字时不能确定它们的排序结果
A.仅I、III B.仅I、IV C.仅II、III D.仅II、IV
答案:A。
-
下列排序方法中,排序趟数与序列的初始状态有关的是________。
A.插入排序 B.选择排序 C.起泡排序 D.快速排序
答案:D。
-
若用起泡排序对关键字序列18,16,14,12,10,8进行升序排序,所需进行的关键字比较总次数是________。
A.10 B.15 C.21 D.34
答案:B。
-
下列排序算法中,不能保证每趟排序至少能将一个元素放到其最终的位置上的是________。
A.快速排序 B.希尔排序 C.堆排序 D.起泡排序
答案:B。
采用快速排序,每趟排序都至少有一个枢轴放置到最终位置上。堆排序中,每趟都将堆顶元素放置到最终位置上。起泡排序中,每趟会选出本趟的极值(最大或最小)放置在最终位置上。但希尔排序不能保证。
-
一组记录的关键字值为46,79,56,38,40,84,利用partition划分算法,以第一个记录为枢轴,得到的一次划分结果为________。
A.38,40,46,56,79,84 B.40,38,46,79,84,56
C.40,38,46,56,79,84 D.40,38,46,84,56,79
答案:B。
-
在下面的排序方法中,辅助空间为O(n)的是________。
A.希尔排序 B.堆排序 C.选择排序 D.归并排序
答案:D。
-
下列排序算法中,当待排序数据已有序时,花费时间反而最多的是________。
A.起泡排序 B.希尔排序 C.快速排序 D.堆排序
答案:C。
-
数组中有10000个元素,如果仅要求求出其中最大的4个元素,则最节省时间的算法是________。
A.直接插入排序 B.希尔排序 C.快速排序 D.选择排序
答案:D。
-
从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为________。
A.直接插入排序 B.选择排序 C.希尔排序 D.二路归并排序
答案:A。
-
使用数据序列10,15,20,25,30建立初始最大堆时,数据对交换的次数是________。
A.1 B.2 C.3 D.4
答案:C。
-
对n个元素的查找表做顺序查找时,若查找每个元素的概率相同,则查找成功的平均查找长度为________。
A.(n+1)/2 B.n/2 C.n D.((1+n)´n)/2
答案:A。
-
下列关于折半查找的叙述中,正确的是________。
A.表必须有序,表可以顺序方式存储,也可以链表方式存储
B.表必须有序且表中数据必须是整型、实型或字符型
C.表必须有序,而且只能从小到大排列
D.表必须有序,且表只能以顺序方式存储
答案:D。
-
与二叉查找树的查找效率有关的是二叉树的________。
A.高度 B.结点个数 C.树形 D.结点的位置
答案:C。
-
下列二叉查找树的情形中,其查找效率最差的是________。
A.结点太多 B.完全二叉树
C.没有度为2的结点 D.结点太复杂
答案:C。
-
分别以下列序列构造二叉查找树,得到的树形与其他三个不同的是________。
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
答案:C。
-
结点数为4的AVL树可能的结构个数有________。
A.4 B.5 C.6 D.7
答案:A。
树中含有4个结点,根在0层(1个结点),1层必有2个结点。否则,剩余的2个结点只能放在2层,且为1层结点的两个子结点,导致根的平衡因子为2或-1,树失平衡。
-
若将关键字1,2,3,4,5,6,7依次插入到初始为空的AVL树T中,则T中平衡因子为0的分支结点的个数是
A.0 B.1 C.2 D.3
答案:D。
-
下列关于m阶B树的说法中,错误的是________。
A.根结点至多有m棵子树
B.所有叶子都在同一层次上
C.非叶结点至少有m/2(m为偶数)或m/2+1(m为奇数)棵子树
D.根结点中的数据是有序的
答案:C。
-
下列关于m阶B树的说法中,正确的是________。
I.每个结点至少有两棵非空子树
II.树中每个结点至多有m-1个关键字
III.所有叶子在同一层上
IV.当插入一个数据项引起B树结点分裂后,树长高一层
A.仅III B.仅II、III C.仅I、II、III D.仅II、III、IV
答案:B。
-
下列关于哈希(Hash,散列)查找的说法中,正确的是________。
A.哈希函数构造的越复杂越好,因为这样随机性好,冲突小
B.除留余数法是所有哈希函数中最好的
C.不存在特别好与坏的哈希函数,要视情况而定
D.若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可
答案:C。
-
设哈希表长为14,哈希函数是H(key)=key mod 11,表中已有数据的关键字为15,38,61,84共4个,现要将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是________。
A.8 B.3 C.5 D.9
答案:D。
-
哈希函数有一个共同的性质,即函数值应当以________取其值域的每个值。
A.最大概率 B.最小概率 C.随机概率 D.相等概率
答案:D。
-
哈希表的地址区间为0-17,哈希函数为H(K)=K mod 17。采用线性探测法处理冲突,并将关键字序列26,25,72,38,8,18,59依次存储到哈希表中。
(1)元素59存放在哈希表中的位置是________。
A.8 B.9 C.10 D.11
答案:D。