数据结构选择题(期末)

1.给定N×N的二维数组A,则在不改变数组的前提下,查找最大元素的时间复杂度是(A):
 
A.O(N2)
B.O(NlogN)
C.O(N)
D.O(N2logN)

两重循环即O(N2)的时间复杂度


2.与数据元素本身的形式、内容、相对位置、个数无关的是数据的(C )。
A.存储结构
B.存储实现
C.逻辑结构
D.运算实现

逻辑结构是数据元素之间的关系,与数据元素本身无关

3.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着(B )。 
A.数据在同一范围内取值 
B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C.每个数据元素都一样 
D.数据元素所包含的数据项的个数要相等

4.下面代码段的时间复杂度是(D)。
s=0;
for ( i=0; i<n; i++ )
    for( j=0; j<n; j++ )
        s+=B[i][j];
sum=s;
 
A.O(1)
B.O(log2n) 
C.O(n)
D.O(n2)

两重for循环,均为从0到n-1,所以是n*n,即O(n2

5.下面代码段的时间复杂度是(D)。
i=1;
while( i<=n )
    i=i*3;
 
A.O(n)
B.O(n2)
C.O(1) 
D.O(log3n)

6.下面代码段的时间复杂度是(B)。
x=0;
for( i=1; i<n; i++ )
    for ( j=1; j<=n-i; j++ )
        x++;
 
A.O(n)
B.O(n2) 
C.O(n3) 
D.O(2n)

7.要判断一个整数N(>10)是否素数,我们需要检查3到 根号N 之间是否存在奇数可以整除N。则这个算法的时间复杂度是:(B)
A.O(N/2) 
B.O(根号N) 
C.O(NlogN)
D.O(0.5logN)

8.下面的程序段违反了算法的(A)原则。
void sam()
{  int n=2;
   while (n%2==0)    n+=2;
   printf(“%d”,n);
}
 
A.有穷性 
B.确定性
C.可行性
D.健壮性

死循环

9.下列对顺序存储的有序表(长度为 n)实现给定操作的算法中,平均时间复杂度为 O(1) 的是(D):
A.查找包含指定值元素的算法 
B.插入包含指定值元素的算法
C.删除第 i(1≤i≤n)个元素的算法
D.获取第 i(1≤i≤n)个元素的算法

10.数组A[1..5,1..6]每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为(C):
A.1120
B.1125
C.1140
D.1145

数组A[1..5,1..6]是5行6列的二维数组,下标不是从0开始,而是从1开始

11.对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度为(B):
A.O(1), O(1)
B.O(1), O(N)
C.O(N), O(1)
D.O(N), O(N)

访问:下标索引,为O(1)

增加:在不同位置增加1个节点需要后移的元素个数不同,分别为:0,1,2······n,取平均值为:(n+1)/ 2,即为 O(n)

12.线性表若采用链式存储结构时,要求内存中可用存储单元的地址(B)
 
A.必须是连续的 
B.连续或不连续都可以 
C.部分地址必须是连续的
D.一定是不连续的

13.对于一个具有N个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为(C)
A.O(1)
B.O(N/2)
C.O(N)
D.O(N2)

查找次数分别为:0,1,2······n,取平均值为:(n+1)/ 2,即为 O(n)

14.链表不具有的特点是:(B)
A.插入、删除不需要移动元
B.方便随机访问任一元素
C.不必事先估计存储空间
D.所需空间与线性长度成正比

15.设h为不带头结点的单向链表。在h的头上插入一个新结点t的语句是(D):
A.h=t; t->next=h->next;
B.t->next=h->next; h=t;
C.h=t; t->next=h;
D.t->next=h; h=t;

16.在单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行(C)
A.s->next=p; p->next=s;
B.s->next=p->next; p=s;
C.s->next=p->next; p->next=s;
D.p->next=s; s->next=p;


17.带头结点的单链表h为空的判定条件是:(B)
 
A.h == NULL;
B.h->next == NULL;
C.h->next == h;
D.h != NULL;

18.设一个堆栈的入栈顺序是1、2、3、4、5。若第一个出栈的元素是4,则最后一个出栈的元素必定是(D): 
A.1
B.3
C.5
D.1或者5

由这一句话“若第一个出栈的元素是4”知道了 栈里面压入了1,2,3

当4出栈后5入栈,出栈,然后1,2,3依次出栈,最后一个出栈的是1

当4出栈后1,2,3依次出栈,然后5入栈,出栈,最后一个出栈的是5

19.若top为指向栈顶元素的指针,判定栈S(最多容纳m个元素)为空的条件是(B):
A.S->top == 0
B.S->top == -1
C.S->top != m-1
D.S->top == m-1

栈为空时:S->top = -1

20.若栈采用顺序存储方式存储,现两栈共享空间V[m]:top[i]代表第i(i=1或2)个栈的栈顶;栈1的底在V[0],栈2的底在V[m-1],则栈满的条件是(D):
A.|top[2]-top[1]|==0
B.top[1]+top[2]==m
C.top[1]==top[2]
D.top[1]+1==top[2]

21.为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是?(B)
A.堆栈
B.队列
C.树
D.图

22.若用大小为6的数组来实现循环队列,且当前front和rear的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,front和rear的值分别为多少?(A)
A.2和0
B.2和2
C.2和4
D.2和6

23.顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( C)。
A.100
B.105
C.108
D.110

24.设栈S和队列Q的初始状态均为空,元素{1, 2, 3, 4, 5, 6, 7}依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是{2, 5, 6, 4, 7, 3, 1},则栈S的容量至少是:(D)
A.1
B.2
C.3
D.4

25.给定一个堆栈的入栈序列为{ 1, 2, ⋯, n },出栈序列为{ p1, p2, ⋯, pn }。如果p2=n,则存在多少种不同的出栈序列?(C)
A.1
B.2
C.n−1
D.n

已知第2个出栈的一定是n,假如n=4,那么可能的情况:

1入栈,出栈,然后2,3,4入栈,最后依次出栈

1入栈,2入栈,出栈,然后3,4入栈,最后依次出栈

1,2入栈,3入栈,出栈,然后4入栈,最后依次出栈

当n=4时共3种情况

26.现有队列 Q 与栈 S,初始时 Q 中的元素依次是{ 1, 2, 3, 4, 5, 6 }(1在队头),S 为空。若允许下列3种操作:(1)出队并输出出队元素;(2)出队并将出队元素入栈;(3)出栈并输出出栈元素,则不能得到的输出序列是:(C)
A.1, 2, 5, 6, 4, 3
B.2, 3, 4, 5, 6, 1
C.3, 4, 5, 6, 1, 2
D.6, 5, 4, 3, 2, 1

27.循环队列的引入,目的是为了克服(A )。
A.假溢出问题
B.真溢出问题
C.空间不够用
D.操作不方便

假溢出:

队列的假溢出通常是指在队列的存储空间尚未完全充满的情况下,由于特定的存储结构或算法导致的溢出现象。这通常发生在顺序队列中,其中队尾指针已经指向数组的最后一个位置,而队头指针并未指向数组的起始位置,这时如果进行入队操作,会显示队列已满,但实际上队列中仍有存储空间未被利用。

28.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为( D)。
A.SXSSSXXX
B.SXSXSXSX
C.SSSSXXXX
D.SXSSXSXX

29.循环队列的队满条件为 ( C)。
A.(sq.rear+1) % maxsize ==(sq.front+1) % maxsize
B.(sq.front+1) % maxsize ==sq.rear
C.(sq.rear+1) % maxsize ==sq.front
D.sq.rear ==sq.front

判空:rear==front

判满:(rear+1) % maxsize ==front

30.栈和队列的共同点是( C)。
A.都是先进先出
B.都是先进后出
C.只允许在端点处插入和删除元素
D.没有共同点

31.若某线性表最常用的操作是在表尾进行插入和删除,则利用哪种存储方式最合适?(A)
A.数组
B.单链表
C.双向链表
D.广义表

32.若某线性表最常用的操作是在表头进行插入和删除,则利用哪种存储方式最合适?(A)
A.单链表
B.双向链表
C.数组
D.广义表

33.树最适合于用来表示(D)
A.有序数据元素
B.无序数据元素
C.元素之间无联系的数据
D.元素之间具有分支层次关系的数据

34.如果二叉树的后序遍历结果是FDEBGCA,中序遍历结果是FDBEACG,那么该二叉树的前序遍历结果是什么?(C)
A.ABCDEFG
B.ABDFEGC
C.ABDFECG
D.ABDEFCG

35.在下述结论中,正确的是:(A)
①只有一个结点的二叉树的度为0;
②二叉树的度为2;
③二叉树的左右子树可任意交换;
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①④
B.②④
C.①②③
D.②③④

36.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序(B)
A.发生改变
B.不发生改变
C.不能确定
D.以上都不对

因为三种遍历序列均按照左右次序

37.按照二叉树的定义,具有3个结点的二叉树有几种?(C)
A.3
B.4
C.5
D.6

38.二叉树中第5层(根的层号为1)上的结点个数最多为:(C)
A.8
B.15
C.16
D.32

39.先序遍历图示二叉树的结果为(B)


A.A,B,C,D,H,E,I,F,G
B.A,B,D,H,I,E,C,F,G
C.H,D,I,B,E,A,F,C,G
D.H,I,D,B,E,F,G,A,C

40.对二叉搜索树进行什么遍历可以得到从小到大的排序序列?(C)
A.前序遍历
B.后序遍历
C.中序遍历
D.层次遍历

二叉搜索树:若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值

41.在有N个结点且为完全二叉树的二叉搜索树中查找一个键值,其平均比较次数的数量级为(A)
A.O(logN)
B.O(N)
C.O(NlogN)
D.O(N2)

寻找可能的次数:1,2······logN,求平均值:(logN)/2+1/2,即 O(logN)

42.已知8个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉搜索树后,最后两层上的结点总数为:(B)
A.1 
B.2
C.3
D.4

43.具有65个结点的完全二叉树其深度为(根的深度为1):(B)
A.8
B.7
C.6
D.5

44.堆的形状是一棵:(D)
A.二叉搜索树
B.满二叉树
C.非二叉树
D.完全二叉树

45.对N(N≥2)个权值均不相同的字符构造哈夫曼树。下列关于该哈夫曼树的叙述中,错误的是: (D)
A.树中一定没有度为1的结点
B.树中两个权值最小的结点一定是兄弟结点
C.树中任一非叶结点的权值一定不小于下一层任一结点的权值
D.该树一定是一棵完全二叉树

46.设一段文本中包含字符{a, b, c, d, e},其出现频率相应为{3, 2, 5, 1, 1}。则经过哈夫曼编码后,文本所占字节数为:(C)
 
A.40
B.36
C.25
D.12

结果=频率(黑色的数)*路径长度 求和

47.由分别带权为9、2、5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长度为:(C)
A.23
B.37
C.44
D.46

48.如果二叉树的前序遍历结果是12345,后序遍历结果是32541,那么该二叉树的中序遍历结果是什么?(D)
A.23145
B.23154
C.24135
D.无法确定

已知前序,后序无法确定

已知前序,中序唯一确定

已知后序,中序唯一确定

因为中序可以把左右子树分开,从中序里面能知道左子树有哪些,右子树有哪些。

前序,后序都没有这个功能

49.有一个四叉树,度2的结点数为2,度3的结点数为3,度4的结点数为4。问该树的叶结点个数是多少?(D)
A.10
B.12
C.20
D.21

N0+N2+N3+N4=n

2*N2+3*N3+4*N4+1=n

带入得:No+2+3+4=n

            2*2+3*3+4*4+1=n

得No=21

50.若一棵二叉树的前序遍历序列是{ 4, 2, 1, 3, 6, 5, 7 },中序遍历序列是{ 1, 2, 3, 4, 5, 6, 7 },则下列哪句是错的?(D)
A.这是一棵完全二叉树
B.所有的奇数都在叶子结点上
C.这是一棵二叉搜索树
D.2是5的父结点

51.具有1102个结点的完全二叉树一定有__个叶子结点。(B)
A.79
B.551
C.1063
D.不确定

52.若一棵二叉树的后序遍历序列是{ 1, 3, 2, 6, 5, 7, 4 },中序遍历序列是{ 1, 2, 3, 4, 5, 6, 7 },则下列哪句是错的?(A)
A.这是一棵完全二叉树
B.2是1和3的父结点
C.这是一棵二叉搜索树
D.7是5的父结点

53.已知一棵二叉树的树形如下图所示,其后序序列为{ e, a, c, b, d, g, f }。树中与结点a同层的结点是:(B)


A.c
B.d
C.f
D.g

54.已知字符集{ a, b, c, d, e, f },若各字符出现的次数分别为{ 6, 3, 8, 2, 10, 4 },则对应字符集中各字符的哈夫曼编码可能是:(A)
A.00, 1011, 01, 1010, 11, 100
B.00, 100, 110, 000, 0010, 01
C.10, 1011, 11, 0011, 00, 010
D.0011, 10, 11, 0010, 01, 000

左0右1

55.若将一棵树 T 转化为对应的二叉树 BT,则下列对 BT 的遍历中,其遍历序列与 T 的后根遍历序列相同的是:(B)
A.先序遍历
B.中序遍历
C.后序遍历
D.按层遍历

56.对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是:(C)
A.56
B.57
C.58
D.60

数字分为2部分,一部分是n

另一部分是n-1

n+n-1=115

57.以二叉链表作为二叉树的存储结构,在具有 n 个结点的二叉链表中(n>0),空链域的个数为 __(A)
A.n+1
B.n
C.n−1
D.无法确定

二叉树空链域:2n-(n-1)=n+1

x叉树空链域:xn-(n-1)=(x-1)n+1

58.已知二叉树的前序遍历序列为 ABDCEFG,中序遍历序列为 DBCAFEG,则后序遍历序列为 __(B)
A.BDACEFG
B.DCBFGEA
C.ABCDEFG
D.GFEDCBA

59.利用过滤法将关键字序列 { 37, 66, 48, 29, 31, 75 } 建成的最大堆为 __(C)
A.75, 66, 48, 37, 31, 29
B.75, 37, 66, 29, 31, 48
C.75, 66, 48, 29, 31, 37
D.75, 48, 66, 37, 29, 31

最大堆创建(过滤法)用c++编译运行-CSDN博客

60.在一棵度为 3 的树中,度为 2 的结点个数是 1,度为 0 的结点个数是 6,则度为 3 的结点个数是 __(A)
A.2
B.3
C.4
D.无法确定

方程组为:

No+N2+N3=n

2 * N2+3*N3+1=n

带入得:

6+1+N3=n

2*1+3*N3+1=n

解得N3=2

61.一棵有47个结点的树一定有______条边。(B)
A.47
B.46
C.92
D.23

62.与表达式 x+y*(z-u)/v 等价的后缀表达式是(A)
A.xyzu-*v/+
B.xyzu-v/*+
C.+x/*y-zuv
D.+x*y/-zuv

63.具有5个顶点的有向完全图有多少条弧?(C)
A.10
B.16
C.20
D.25

有向完全图:n*(n-1)

无向完全图:n*(n-1) / 2

64.对于一个具有N个顶点的无向图,要连通所有顶点至少需要多少条边?(A)
A.N−1
B.N
C.N+1
D.N/2

65.具有N(N>0)个顶点的无向图至多有多少个连通分量?(D)
A.0
B.1
C.N−1
D.N

每一个顶点都可以是一个连通分量

66.如果G是一个有28条边的非连通无向图,那么该图顶点个数最少为多少?(C)
A.7
B.8
C.9
D.10

如果求顶点个数最少,即该图由一个完全无向图与一个顶点(不与任何顶点相连)构成的一个图

一个含有n个顶点的无向图最多有n(n-1)/2个边(完全无向图)

67.对于有向图,其邻接矩阵表示比邻接表表示更易于:(A)
A.求一个顶点的入度
B.求一个顶点的出边邻接点
C.进行图的深度优先遍历
D.进行图的广度优先遍历

68.对于一个具有N个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是:(D)
A.N−1
B.N
C.(N−1)2
D.N2

69.若一个有向图用邻接矩阵表示,则第i个结点的入度就是:(C)
A.第i行的元素个数
B.第i行的非零元素个数
C.第i列的非零元素个数
D.第i列的零元素个数

70.关于图的邻接矩阵,下列哪个结论是正确的?(B)
A.有向图的邻接矩阵总是不对称的
B.有向图的邻接矩阵可以是对称的,也可以是不对称的
C.无向图的邻接矩阵总是不对称的
D.无向图的邻接矩阵可以是不对称的,也可以是对称的

71.在任一有向图中,所有顶点的入度之和与所有顶点的出度之和的关系是:(A)
A.相等
B.大于等于
C.小于等于
D.不确定

72.下列说法不正确的是:(D)
A.图的遍历是从给定的源点出发每一个顶点仅被访问一次
B.遍历的基本算法有两种:深度遍历和广度遍历
C.图的深度遍历是一个递归过程
D.图的深度遍历不适用于有向图

73.图的深度优先遍历类似于二叉树的:(A)
A.先序遍历
B.中序遍历
C.后序遍历
D.层次遍历

DFS和先序遍历均是一条路走到黑,遇到死路再回退,然后重复此操作

74.在用邻接表表示有N个结点E条边的图时,深度优先遍历算法的时间复杂度为:(B)
A.O(N)
B.O(N+E)
C.O(N2)
D.O(N2×E)

邻接矩阵:

DFS:O(V2)            BFS:O(V2)

邻接表:

DFS:O(N+E)              BFS:O(N+E)

75.在图中自d点开始进行深度优先遍历算法可能得到的结果为: (C)


A.d,a,c,f,e,b
B.d,a,e,b,c,f
C.d,e,a,c,f,b
D.d,f,c,e,a,b

76.给定无向图G,从V0出发进行深度优先遍历访问的边集合为: {(V0,V1), (V0,V4), (V1,V2), (V1,V3), (V4,V5), (V5,V6)}。则下面哪条边不可能出现在G中?(C)
A.(V0,V2)
B.(V0,V6)
C.(V1,V5)
D.(V4,V6)

77.给定一有向图的邻接表如下。从顶点V1出发按深度优先搜索法进行遍历,则得到的一种顶点序列为:(B)


A.V1,V2,V3,V5,V4
B.V1,V3,V4,V5,V2
C.V1,V4,V3,V5,V2
D.V1,V2,V4,V5,V3

DFS有向图(用c++编译运行)-CSDN博客

78.在图中自c点开始进行广度优先遍历算法可能得到的结果为:(C)


A.c,a,b,e,f,d
B.c,a,f,d,e,b
C.c,f,a,d,e,b
D.c,f,a,b,d,e

BFS(用C++编译运行)-CSDN博客

79.给定一有向图的邻接表如下。从顶点V1出发按广度优先搜索法进行遍历,则得到的一种顶点序列为:(C)


A.V1,V2,V3,V4,V5
B.V1,V2,V3,V5,V4
C.V1,V3,V2,V4,V5
D.V1,V4,V3,V5,V2

80.我们用一个有向图来表示航空公司所有航班的航线。下列哪种算法最适合解决找给定两城市间最经济的飞行路线问题?(A)
A.Dijkstra算法
B.Kruskal算法
C.深度优先搜索
D.拓扑排序算法

81.数据结构中Dijkstra算法用来解决哪个问题?(B)
A.关键路径
B.最短路径
C.拓扑排序
D.字符串匹配

82.给定有权无向图的邻接矩阵如下,其最小生成树的总权重是:(D)


A.10
B.11
C.12
D.14

83.下图为一个AOV网,其可能的拓扑有序序列为:(D)


A.ACBDEF
B.ABCEFD
C.ABCDFE
D.ABCEDF

84.在AOE网中,什么是关键路径?(D)
A.最短回路
B.最长回路
C.从第一个事件到最后一个事件的最短路径
D.从第一个事件到最后一个事件的最长路径

85.在拓扑排序算法中用堆栈和用队列产生的结果会不同吗?(C)
A.是的肯定不同
B.肯定是相同的
C.有可能会不同
D.以上全不对

86.下面给出的有向图中,有__个强连通分量。(C)


A.1 ({0,1,2,3,4})
B.1 ({1,2,3,4})
C.2 ({1,2,3,4}, {0})
D.5 ({0}, {1}, {2}, {3}, {4})

87.下面给出的有向图中,各个顶点的入度和出度分别是:(A)


A.入度: 0, 2, 3, 1, 2; 出度: 3, 2, 1, 1, 1
B.入度: 3, 2, 1, 1, 1; 出度: 0, 2, 3, 1, 2
C.入度: 3, 4, 4, 2, 3; 出度: 3, 4, 4, 2, 3
D.入度: 0, 1, 2, 1, 1; 出度: 3, 2, 1, 1, 1

88.给定一个有向图的邻接表如下图,则该图有__个强连通分量。(B)


A.4 {{0, 1, 5}, {2}, {3}, {4}}
B.3 {{2}, {4}, {0, 1, 3, 5}}
C.1 {0, 1, 2, 3, 4, 5}
D.1 {0, 5, 1, 3}

89.使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是:(B)


A.5, 2, 3, 4, 6
B.5, 2, 3, 6, 4
C.5, 2, 4, 3, 6
D.5, 2, 6, 3, 4

90.给定有向图的邻接矩阵如下: 


顶点2(编号从0开始)的出度和入度分别是:(C)
A.3, 1
B.1, 3
C.0, 2
D.2, 0

91.给定有权无向图如下。关于其最小生成树,下列哪句是对的?(A)


A.最小生成树不唯一,其总权重为23
B.最小生成树唯一,其总权重为20
C.边(B, F)一定在树中,树的总权重为23
D.边(H, G)一定在树中,树的总权重为20

92.拓扑排序
▁▁▁▁▁ 是下面 AOV 网的一个拓扑序列。(B)

题图.jpg


A.BDACFEG
B.ACBDFEG
C.ABDCFEG
D.CDEABFG

93.下图是一个有 10 个活动的 AOE 网,时间余量最大的活动是:(B)

AOE网.png


A.c
B.g
C.h 
D.j

94.下列排序算法中,哪种算法可能出现:在最后一趟开始之前,所有的元素都不在其最终的位置上?(设待排元素个数N>2)(B)
A.冒泡排序
B.插入排序
C.堆排序
D.快速排序

插入 排序-CSDN博客

95.就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是:(C)
 
A.堆排序 < 归并排序 < 快速排序
B.堆排序 > 归并排序 > 快速排序
C.堆排序 < 快速排序 < 归并排序
D.堆排序 > 快速排序 > 归并排序

96.对N个不同的数据采用冒泡算法进行从大到小的排序,下面哪种情况下肯定交换元素次数最多?(A)
A.从小到大排好的
B.从大到小排好的
C.元素无序
D.元素基本有序

97.对于序列{ 49,38,65,97,76,13,27,50 },按由小到大进行排序,下面哪一个是初始步长为4的希尔排序法第一趟的结果?(B)
A.13,27,38,49,50,65,76,97
B.49,13,27,50,76,38,65,97
C.49,76,65,13,27,50,97,38
D.97,76,65,50,49,38,27,13

希尔排序 (最后附完整代码)-CSDN博客

98.给定初始待排序列{ 15,9,7,8,20,-1,4 }。如果希尔排序第一趟结束后得到序列为{ 15,-1,4,8,20,9,7 },则该趟增量为:(D)
A.1
B.2
C.3
D.4

希尔排序 (最后附完整代码)-CSDN博客

99.对大部分元素已有序的数组进行排序时,直接插入排序比简单选择排序效率更高,其原因是:(A)
•    (I). 直接插入排序过程中元素之间的比较次数更少
•    (II). 直接插入排序过程中所需要的辅助空间更少
•    (III). 直接插入排序过程中元素的移动次数更少
A.仅 I
B.仅 III
C.仅 I、II
D.I、II 和 III

100.在下列查找的方法中,平均查找长度与结点个数无关的查找方法是:(C)
A.顺序查找 
B.二分法
C.利用哈希(散列)表
D.利用二叉搜索树

101.假定有K个关键字互为同义词,若用线性探测法把这K个关键字存入散列表中,至少要进行多少次探测?(D)
A.K−1
B.K
C.K+1
D.K(K+1)/2

1+2+3+·····+k = K(K+1)/2

102.将元素序列{18,23,11,20,2,7,27,33,42,15}按顺序插入一个初始为空的、大小为11的散列表中。散列函数为:H(Key)=Key%11,采用线性探测法处理冲突。问:当第一次发现有冲突时,散列表的装填因子大约是多少?(B)
A.0.27
B.0.45
C.0.64
D.0.73

103.给定散列表大小为11,散列函数为H(Key)=Key%11。采用平方探测法处理冲突:hi(k)=(H(k)±i2)%11将关键字序列{ 6,25,39,61 }依次插入到散列表中。那么元素61存放在散列表中的位置是:(A)
A.5 
B.6
C.7 
D.8

104.现有长度为 7、初始为空的散列表HT,散列函数H(k)=k%7,用线性探测再散列法解决冲突。将关键字 22, 43, 15 依次插入到HT后,查找成功的平均查找长度是:(C)
A.1.5
B.1.6
C.2
D.3

  • 32
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供具体的大连理工大学数据结构期末考试题。但是,我可以为您介绍一下数据结构的基本知识和常见考点,以帮助您更好地准备考试。 数据结构是计算机科学中非常重要的一门课程,它研究如何组织和存储数据,以及如何高效地操作和处理数据。以下是一些数据结构的基本知识和常见考点: 1. 数组:数组是一种线性数据结构,它可以存储相同类型的元素,并通过索引访问。了解数组的创建、访问和操作方法是非常重要的。 2. 链表:链表也是一种线性数据结构,它由节点组成,每个节点包含数据和指向下一个节点的指针。了解链表的插入、删除和遍历操作是常见的考点。 3. 栈和队列:栈和队列是两种常见的数据结构。栈是一种后进先出(LIFO)的数据结构,而队列是一种先进先出(FIFO)的数据结构。了解它们的特点、操作和应用场景是重要的。 4. 树:树是一种非线性数据结构,它由节点和边组成。常见的树结构包括二叉树、二叉搜索树和平衡树等。了解树的遍历方式(如前序、中序和后序遍历)、插入和删除操作是常见的考点。 5. 图:图是一种非线性数据结构,它由节点和边组成。了解图的表示方法(如邻接矩阵和邻接表)、遍历方式(如深度优先搜索和广度优先搜索)以及最短路径算法(如Dijkstra算法)是常见的考点。 6. 排序和搜索算法:了解常见的排序算法(如冒泡排序、插入排序、选择排序、快速排序和归并排序)和搜索算法(如线性搜索和二分搜索)是重要的。 以上是数据结构的一些基本知识和常见考点,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值