文档库 最新最全的文档下载
当前位置:文档库 › 数据结构和算法期末考试复习试题整理

数据结构和算法期末考试复习试题整理

数据结构和算法期末考试复习试题整理
数据结构和算法期末考试复习试题整理

《数据结构与算法》复习题

一、选择题。

1.在数据结构中,从逻辑上可以把数据结构分为 C 。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构

C.线性结构和非线性结构 D.内部结构和外部结构

2.数据结构在计算机内存中的表示是指 A 。

A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系

3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A.逻辑 B.存储 C.逻辑和存储 D.物理

4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。

A.数据的处理方法 B.数据元素的类型

C.数据元素之间的关系 D.数据的存储方法

5.在决定选取何种存储结构时,一般不考虑 A 。

A.各结点的值如何 B.结点个数的多少

C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。

6.以下说法正确的是 D 。

A.数据项是数据的基本单位

B.数据元素是数据的最小单位

C.数据结构是带结构的数据项的集合

D.一些表面上很不相同的数据可以有相同的逻辑结构

7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。

(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性

(2)A.空间复杂度和时间复杂度 B.正确性和简明性

C.可读性和文档性 D.数据复杂性和程序复杂性

8.下面程序段的时间复杂度是 O(n2) 。

s =0;

for( I =0; i

f or(j=0;j

s +=B[i][j]; sum =

s ;

9.下面程序段的时间复杂度是 O(n*m) 。

for( i =0; i

for(j=0;j

A[i][j] = 0;

10.下面程序段的时间复杂度是 O(log3n) 。

i = 0;

while(i<=n)

i = i * 3;

11.在以下的叙述中,正确的是 B 。

A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表

C.栈的操作方式是先进先出

D.队列的操作方式是先进后出

12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。 A.数据元素具有同一特点

B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致

C.每个数据元素都一样

D.数据元素所包含的数据项的个数要相等

13.链表不具备的特点是 A 。

A.可随机访问任一结点 B.插入删除不需要移动元素

C.不必事先估计存储空间 D.所需空间与其长度成正比

14.不带头结点的单链表 head 为空的判定条件是 A 。

A.head == NULL B head->next ==NULL

C.head->next ==head D head!=NULL

15.带头结点的单链表 head 为空的判定条件是 B 。

A.head == NULL B head->next ==NULL

C.head->next ==head D head!=NULL

16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用

D 存储方式最节省运算时间。

A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表

17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。

A.单链表 B.静态链表 C.线性链表 D.顺序存储结构

18.非空的循环单链表 head 的尾结点(由 p 所指向)满足 C 。

A.p->next == NULL B.p == NULL

C.p->next ==head D.p == head

19.在循环双链表的 p 所指的结点之前插入 s 所指结点的操作是 D 。

A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior

B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior

C.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s

D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s 20.如

果最常用的操作是取第 i 个结点及其前驱,则采用 D 存储方式最节省时间。

A.单链表 B.双链表 C.单循环链表 D.顺序表

21.在一个具有 n 个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B 。

A.O(1) B.O(n) C.O(n2) D.O(nlog2n)

22.在一个长度为 n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。

A.删除单链表中的第一个元素

B.删除单链表中的最后一个元素

C.在单链表第一个元素前插入一个新元素

D.在单链表最后一个元素后插入一个新元素

23.与单链表相比,双链表的优点之一是 D 。

A.插入、删除操作更简单

B.可以进行随机访问

C.可以省略表头指针或表尾指针

D.顺序访问相邻结点更灵活

24.如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用B。

A.只有表头指针没有表尾指针的循环单链表 B.只有表尾指针没有表头指针的循环单链表

C.非循环双链表

D.循环双链表

25.在长度为 n 的顺序表的第 i 个位置上插入一个元素(1≤ i ≤n+1),元素的移动次数为: A 。A.n – i + 1 B.n – i C.i D.i – 1

26.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为 C 。

A.顺序表 B.用头指针表示的循环单链表

C.用尾指针表示的循环单链表 D.单链表

27.下述哪一条是顺序存储结构的优点? C 。

A插入运算方便 B 可方便地用于各种逻辑结构的存储表示

C存储密度大 D 删除运算方便

28.下面关于线性表的叙述中,错误的是哪一个? B 。

A线性表采用顺序存储,必须占用一片连续的存储单元

B线性表采用顺序存储,便于进行插入和删除操作。

C线性表采用链式存储,不必占用一片连续的存储单元

D线性表采用链式存储,便于进行插入和删除操作。

29.线性表是具有 n 个 B 的有限序列。

A.字符 B.数据元素 C.数据项 D.表元素

30.在 n 个结点的线性表的数组实现中,算法的时间复杂度是 O(1)的操作是 A 。

A.访问第 i(1<=i<=n)个结点和求第 i 个结点的直接前驱(1

B.在第 i(1<=i<=n)个结点后插入一个新结点

C.删除第 i(1<=i<=n)个结点

D.以上都不对

31.若长度为 n 的线性表采用顺序存储结构,在其第 i 个位置插入一个新元素的算法的时间复杂度为C 。

A.O(0) B.O(1) C.O(n) D.O(n2)

32.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为 C 。

A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1)

33.线性表(a1,a2, … ,an)以链式方式存储,访问第 i 位置元素的时间复杂度为 C 。

A.O(0) B.O(1) C.O(n) D.O(n2)

34.单链表中,增加一个头结点的目的是为了 C 。

A.使单链表至少有一个结点 B.标识表结点中首结点的位置

C.方面运算的实现 D.说明单链表是线性表的链式存储

35.在单链表指针为 p 的结点之后插入指针为 s 的结点,正确的操作是 B 。

A.p->next=s;s->next=p->next B. s->next=p->next ;p->next=s;

C.p->next=s;p->next=s->next D.p->next=s->next;p->next=s

36.线性表的顺序存储结构是一种 A 。

A.随机存取的存储结构 B.顺序存取的存储结构

C.索引存取的存储结构 D.Hash 存取的存储结构

37.栈的特点是 B ,队列的特点是 A 。

A.先进先出 B.先进后出

38.栈和队列的共同点是 C 。

A.都是先进后出 B.都是先进先出

C.只允许在端点处插入和删除元素 D.没有共同点

39.一个栈的进栈序列是 a,b,c,d,e,则栈的不可能的输出序列是 C 。

A.edcba B.decba C.dceab D.abcde

40.设有一个栈,元素依次进栈的顺序为 A、B、C、D、E。下列 C 是不可能的出栈序列。

A.A,B,C,D,E B.B,C,D,E,A C.E,A,B,C,D D.E,D,C,B,A

41.以下 B 不是队列的基本运算?

A.从队尾插入一个新元素 B.从队列中删除第 i 个元素

C.判断一个队列是否为空 D.读取队头元素的值

42.若已知一个栈的进栈序列是 1,2,3,,n,其输出序列为 p1,p2,p3,…,pn,若 p1=n,则 pi 为C 。 A.i B.n-i C.n-i+1 D.不确定

43.判定一个顺序栈 st(最多元素为 MaxSize)为空的条件是 B 。

A.st->top != -1 B.st->top == -1

C.st->top != MaxSize D. st->top == MaxSize

44.判定一个顺序栈 st(最多元素为 MaxSize)为满的条件是 D 。

A.st->top != -1 B.st->top == -1

C.st->top != MaxSize D.st->top == MaxSize

45.一个队列的入队序列是 1,2,3,4,则队列的输出序列是 B 。

A.4,3,2,1 B.1,2,3,4

C.1,4,3,2 D.3,2,4,1

46.判定一个循环队列 qu(最多元素为 MaxSize)为空的条件是 C 。

A.qu->rear – qu->front ==MaxSize B.qu->rear – qu->front -

1==MaxSize

C.qu->rear ==qu->front D. qu->rear =qu->front -1

47.在循环队列中,若 front 与 rear 分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是

C 。

A.front==rear+1 B.rear==front+1 C.front==rear D.front==0

48.向一个栈顶指针为 h 的带头结点的链栈中插入指针 s 所指的结点时,应执行 D 操作。

A.h->next=s ; B.s->next=h ;

C.s->next=h ;h =s ; D.s->next=h->next ;h->next=s ;

49.输入序列为 ABC,可以变为 CBA 时,经过的栈操作为 B 。

A.push,pop,push,pop,push,pop B.push,push,push,pop, pop, pop

C.push,push,pop, pop,push,pop D.push,pop,push,push,pop, pop

50.若栈采用顺序存储方式存储,现两栈共享空间 V[1 m],top[1]、top[2]分别代表第 1 和第 2 个栈的栈顶,栈 1 的底在 V[1],栈 2 的底在 V[m],则栈满的条件是 B 。

A.|top[2]-top[1]|=0 B. top[1]+1=top[2] C.top[1]+top[2]=m D.top[1]=top[2]

51.设计一个判别表达式中左、右括号是否配对出现的算法,采用 D 数据结构最佳。

A.线性表的顺序存储结构 B.队列 C.线性表的链式存储结构 D.栈

52.允许对队列进行的操作有 D 。

A.对队列中的元素排序 B.取出最近进队的元素

C.在队头元素之前插入元素 D.删除队头元素

53.对于循环队列 D 。

A.无法判断队列是否为空 B.无法判断队列是否为满

C.队列不可能满 D.以上说法都不对

54.若用一个大小为 6 的数值来实现循环队列,且当前 rear 和 front 的值分别为 0 和 3,当从队列中删除一个元素,再加入两个元素后,rear 和 front 的值分别为 B 。

A.1 和 5 B.2 和 4 C.4 和 2 D.5 和 1

55.队列的“先进先出”特性是指 D 。

A.最早插入队列中的元素总是最后被删除

B.当同时进行插入、删除操作时,总是插入操作优先

C.每当有删除操作时,总是要先做一次插入操作

D.每次从队列中删除的总是最早插入的元素

56.和顺序栈相比,链栈有一个比较明显的优势是 A 。

A.通常不会出现栈满的情况 B.通常不会出现栈空的情况

C.插入操作更容易实现 D.删除操作更容易实现

57.用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时 C 。

A.仅修改队头指针 B.仅修改队尾指针

C.队头、队尾指针都可能要修改 D.队头、队尾指针都要修改

58.若串 S=‘software’,其子串的数目是 B 。

A.8 B.37 C.36 D.9

59.串的长度是指 B 。

A.串中所含不同字母的个数 B.串中所含字符的个数

C.串中所含不同字符的个数 D.串中所含非空格字符的个数

60.串是一种特殊的线性表,其特殊性体现在 B 。

A.可以顺序存储 B.数据元素是一个字符

C.可以链式存储 D.数据元素可以是多个字符

61.设有两个串 p 和 q,求 q 在 p 中首次出现的位置的运算称为 B 。

A.连接 B.模式匹配 C.求子串 D.求串长

62.数组 A 中,每个元素的长度为 3 个字节,行下标 i 从 1 到 8,列下标 j 从 1 到 10,从首地址SA 开始连续存放的存储器内,该数组按行存放,元素 A[8][5]的起始地址为 C 。

A.SA+141 B. SA+144 C.SA+222 D.SA+225

63.数组 A 中,每个元素的长度为 3 个字节,行下标 i 从 1 到 8,列下标 j 从 1 到 10,从首地址SA 开始连续存放的存储器内,该数组按行存放,元素 A[5][8]的起始地址为 C 。

A.SA+141 B. SA+180 C.SA+222 D.SA+225

64.若声明一个浮点数数组如下: froat average[]=new float[30];

假设该数组的内存起始位置为 200, average[15]的内存地址是 C 。

A.214 B.215 C.260 D.256

65.设二维数组 A[1… m,1… n]按行存储在数组 B 中,则二维数组元素 A[i,j]在一维数组 B 中的下标为A 。

A.n*(i-1)+j B. n*(i-1)+j-1 C.i*(j-1) D.j*m+i-1

66.有一个 100×90 的稀疏矩阵,非 0 元素有 10,设每个整型数占 2 个字节,则用三元组表示该矩阵时,所需的字节数是 B 。

A.20 B. 66 C.18 000 D.33

67.数组 A[0 … 4,-1 … -3,5 …7]中含有的元素个数是 A 。

A.55 B. 45 C.36 D.16

68.对矩阵进行压缩存储是为了 D 。

A.方便运算 B.方便存储 C.提高运算速度 D.减少存储空间

69.设有一个 10 阶的对称矩阵 A,采用压缩存储方式,以行序为主存储,a1,1为第一个元素,其存储地址为 1,每个元素占 1 个地址空间,则 a8,5的地址为 B 。

A.13 B. 33 C.18 D.40

70.稀疏矩阵一般的压缩存储方式有两种,即 C 。 A.二维数组和三维数组

B.三元组和散列

C.三元组和十字链表 D.散列和十字链表

71.树最适合用来表示 C 。

A.有序数据元素 B.无序数据元素

C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据

72.深度为 5 的二叉树至多有 C 个结点。

A.16 B. 32 C. 31 C. 10

73.对一个满二叉树,m 个叶子,n 个结点,深度为 h,则 D 。

A.n = h+m B h+m = 2n C m = h-1 D n = 2h-1

74.任何一棵二叉树的叶子结点在前序、中序和后序遍历序列中的相对次序 A 。

A.不发生改变 B.发生改变 C.不能确定 D.以上都不对

75.在线索化树中,每个结点必须设置一个标志来说明它的左、右链指向的是树结构信息,还是线索化信息,若 0 标识树结构信息,1 标识线索,对应叶结点的左右链域,应标识为__ D __。

A.00 B.01 C.10 D.11

76.在下述论述中,正确的是 D 。

①只有一个结点的二叉树的度为 0;②二叉树的度为 2;③二叉树的左右子树可任意交换;④深度

为 K 的顺序二叉树的结点个数小于或等于深度相同的满二叉树。

A.①②③ B.②③④ C.②④ D.①④

77.设森林 F 对应的二叉树为 B,它有 m 个结点,B 的根为 p,p 的右子树的结点个数为 n,森林 F 中第一棵树的结点的个数是 A 。

A.m-n B.m-n-1 C.n+1 D.不能确定

78.若一棵二叉树具有 10 个度为 2 的结点,5 个度为 1 的结点,则度为 0 的结点的个数是 B 。

A.9 B.11 C.15 D.不能确定

79.具有 10 个叶子结点的二叉树中有 B 个度为 2 的结点。

A.8 B.9 C.10 D.11

80.在一个无向图中,所有顶点的度数之和等于所有边数的 C 倍。

A .1/2

B 1

C 2

D 4

81.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的 B 倍。 A .1/2 B 1 C 2 D 4

82.某二叉树结点的中序序列为 ABCDEFG ,后序序列为 BDCAFGE ,则其左子树中结点数目为: C A .3 B .2 C .4 D .5

83.已知一算术表达式的中缀形式为 A +B *C –D/E ,后缀形式为 ABC *+DE/–,其前缀形式为 D 。

A .–A+B*C/DE

B .–A+B*CD/E

C –+*ABC/DE

D .–+A*BC/DE

84.已知一个图,如图所示,若从顶点 a 出发按深度搜索法进行遍历,则可能得到的一种顶点序列为____D___;按广度搜索法进行遍历,则可能得到的一

种顶点序列为___A___;

①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 ②A .a ,b ,c ,e ,d ,f B .a ,b ,c ,e ,f ,d C .a ,e ,b ,c ,f ,d , D .a ,c ,f ,d ,e ,b

85.采用邻接表存储的图的深度优先遍历算法类似于二叉树的___A____。

A .先序遍历

B .中序遍历

C .后序遍历

D .按层遍历

86.采用邻接表存储的图的广度优先遍历算法类似于二叉树的___D____。

A .先序遍历

B .中序遍历

C .后序遍历

D .按层遍历

87.具有 n 个结点的连通图至少有 A 条边。 A . n-1 B . n C . n(n-1)/2 D . 2n

88.广义表((a ),a )的表头是 C ,表尾是 C 。 A .a B () C (a ) D ((a ))

89.广义表((a ))的表头是 C ,表尾是 B 。 A .a B () C (a ) D ((a ))

90.顺序查找法适合于存储结构为 B 的线性表。

A 散列存储

B 顺序存储或链式存储

C 压缩存储

D 索引存储

91.对线性表进行折半查找时,要求线性表必须 B 。

A 以顺序方式存储

B 以顺序方式存储,且结点按关键字有序排列

C 以链式方式存储

D 以链式方式存储,且结点按关键字有序排列

a b

c

d

e

f

92.采用折半查找法查找长度为 n 的线性表时,每个元素的平均查找长度为 D 。

A O(n2)

B O(nlog2n)

C O(n)

D O(log2n)

93.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当折半查找值为 82 的结点时, C 次比较后查找成功。

A. 11 B 5 C 4 D 8

94.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法 B 。

A 正确

B 错误

95.下面关于 B 树和 B+树的叙述中,不正确的结论是 A 。

A B 树和 B+树都能有效的支持顺序查找 B B 树和 B+树都能有效的支持随机查找

C B 树和 B+树都是平衡的多叉树

D B 树和 B+树都可用于文件索引结构

96.以下说法错误的是 B 。

A.散列法存储的思想是由关键字值决定数据的存储地址

B.散列表的结点中只包含数据元素自身的信息,不包含指针。

C.负载因子是散列表的一个重要参数,它反映了散列表的饱满程度。

D.散列表的查找效率主要取决于散列表构造时选取的散列函数和处理冲突的方法。

97.查找效率最高的二叉排序树是 C 。 A.所有结点的左子树都为空的二叉排序树。

B.所有结点的右子树都为空的二叉排序树。

C.平衡二叉树。

D.没有左子树的二叉排序树。

98.排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为 C 。

A.希尔排序 B。冒泡排序 C 插入排序 D。选择排序

99.在所有的排序方法中,关键字比较的次数与记录的初始排列次序无关的是 D 。

A.希尔排序 B.冒泡排序 C.直接插入排序 D.直接选择排序

100.堆是一种有用的数据结构。下列关键码序列 D 是一个堆。

A.94,31,53,23,16,72 B.94,53,31,72,16,23

C.16,53,23,94,31,72 D.16,31,23,94,53,72 101.堆排序是

一种 B 排序。

A.插入 B.选择 C.交换 D.归并

102. D 在链表中进行操作比在顺序表中进行操作效率高。

A.顺序查找 B.折半查找 C.分块查找 D.插入

103.直接选择排序的时间复杂度为 D 。(n 为元素个数) A.O(n)

B.O(log2n) C.O(nlog2n) D. O(n2)

二、填空题。

1.数据逻辑结构包括线性结构、树形结构和图状结构三种类型,树形结构和图状结构合称非线性结构。

2.数据的逻辑结构分为集合、线性结构、树形结构和图状结构 4 种。

3.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有 1 个后续结点。

4.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

5.在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有

后续结点,其余每个结点的后续结点可以任意多个。

6.数据结构的基本存储方法是顺序、链式、索引和散列存储。

7.衡量一个算法的优劣主要考虑正确性、可读性、健壮性和时间复杂度与空间复杂度。

8.评估一个算法的优劣,通常从时间复杂度和空间复杂度两个方面考察。

9.算法的 5 个重要特性是有穷性、确定性、可行性、输入和输出。

10.在一个长度为 n 的顺序表中删除第 i 个元素时,需向前移动 n-i-1 个元素。

11.在单链表中,要删除某一指定的结点,必须找到该结点的前驱结点。

12.在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向后继结点。

13.在顺序表中插入或删除一个数据元素,需要平均移动 n 个数据元素,移动数据元素的个数与位置有关。

14.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表的元素是,应采用顺序存储结构。

15.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成单链表和双链表。

16.顺序存储结构是通过下标表示元素之间的关系的;链式存储结构是通过指针表示元素之间的关系的。

17.带头结点的循环链表 L 中只有一个元素结点的条件是 L->next->next=L 。

18.栈是限定仅在表尾进行插入或删除操作的线性表,其运算遵循后进先出的原则。

19.空串是零个字符的串,其长度等于零。空白串是由一个或多个空格字符组成的串,其长度等于其包含的空格个数。

20.组成串的数据元素只能是单个字符。

21.一个字符串中任意个连续字符构成的部分称为该串的子串。

22.子串”str” 在主串”datastructure” 中的位置是 5 。

23.二维数组 M 的每个元素是 6 个字符组成的串,行下标 i 的范围从 0 到 8,列下标 j 的范围从 1 到 10,则存放 M 至少需要 540 个字节;M 的第 8 列和第 5 行共占 108 个字节。

24.稀疏矩阵一般的压缩存储方法有两种,即三元组表和十字链表。

25.广义表((a),((b),c),(((d))))的长度是 3 ,深度是 4 。

26.在一棵二叉树中,度为零的结点的个数为 n0,度为 2 的结点的个数为 n2,则有 n0=

n2+1 。

27.在有 n 个结点的二叉链表中,空链域的个数为__n+1__。

28.一棵有 n 个叶子结点的哈夫曼树共有__2n-1_个结点。

29.深度为 5 的二叉树至多有 31 个结点。

30.若某二叉树有 20 个叶子结点,有 30 个结点仅有一个孩子,则该二叉树的总结点个数为 69 。

31.某二叉树的前序遍历序列是 abdgcefh,中序序列是 dgbaechf,其后序序列为 gdbehfca 。

32.线索二叉树的左线索指向其遍历序列中的前驱,右线索指向其遍历序列中的后继。

33.在各种查找方法中,平均查找长度与结点个数 n 无关的查找方法是散列查找法。 34.在分块索引查找方法中,首先查找索引表,然后查找相应的块表。

35.一个无序序列可以通过构造一棵二叉排序树而变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。

36.具有 10 个顶点的无向图,边的总数最多为__45__。

37.已知图 G 的邻接表如图所示,其从顶点 v1 出发的深度优先搜索序列为_v1v2v3v6v5v4_,其从顶点v1 出发的广度优先搜索序列为_v1v2v5v4v3v6__。

38.索引是为了加快检索速度而引进的一种数据结构。一个索引隶属于某个数据记录集,它由若干索引项组成,索引项的结构为关键字和关键字对应记录的地址。

39.Prim 算法生成一个最小生成树每一步选择都要满足边的总数不超过 n-1 ,

当前选择的边的权值是候选边中最小的,选中的边加入树中不产生回路三项原则。

40.在一棵 m 阶 B 树中,除根结点外,每个结点最多有 m 棵子树,最少有 m/2 棵子树。

三、判断题。

1.在决定选取何种存储结构时,一般不考虑各结点的值如何。(√)

2.抽象数据类型(ADT)包括定义和实现两方面,其中定义是独立于实现的,定义仅给出一个 ADT 的逻辑特性,不必考虑如何在计算机中实现。(√ )

3.抽象数据类型与计算机内部表示和实现无关。(√)

4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。(×)

5.线性表采用链式存储结构时,结点和结点内部的存储空间可以是不连续的。(×)

6.对任何数据结构链式存储结构一定优于顺序存储结构。(×)

7.顺序存储方式只能用于存储线性结构。(×)

8.集合与线性表的区别在于是否按关键字排序。(×)

9.线性表中每个元素都有一个直接前驱和一个直接后继。(×)

10.线性表就是顺序存储的表。(×)

11.取线性表的第 i 个元素的时间同 i 的大小有关。(×)

12.循环链表不是线性表。(×)

13.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序表中效率高。(√)14.双向链表可随机访问任一结点。(×)

15.在单链表中,给定任一结点的地址 p,则可用下述语句将新结点 s 插入结点 p 的后面:p->next = s; s->next = p->next; (× )

16.队列是一种插入和删除操作分别在表的两端进行的线性表,是一种先进后出的结构。(×)

17. 串是一种特殊的线性表,其特殊性体现在可以顺序存储。(×)

18.长度为 1 的串等价于一个字符型常量。(× )

19.空串和空白串是相同的。(×)

20.数组元素的下标值越大,存取时间越长。(× )

21.用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中结点个数

有关,而与图的边数无关。(√ )

22.一个广义表的表头总是一个广义表。(×)

23.一个广义表的表尾总是一个广义表。(√)

24.广义表((( a ), b), c ) 的表头是(( a ), b),表尾是( c )。(√)

25.二叉树的后序遍历序列中,任意一个结点均处在其孩子结点的后面。(√)

26.度为 2 的有序树是二叉树。(×)

27.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。(√)

28.用一维数组存储二叉树时,总是以前序遍历顺序存储结点。(×)

29.若已知一棵二叉树的前序遍历序列和后序遍历序列,则可以恢复该二叉树。(×)

30.在哈夫曼树中,权值最小的结点离根结点最近。(× )

31.强连通图的各顶点间均可达。(√)

32.对于任意一个图,从它的某个结点进行一次深度或广度优先遍历可以访问到该图的每个顶点。(×)33.在待排序的记录集中,存在多个具有相同键值的记录,若经过排序,这些记录的相对次序仍然保持不变,称这种排序为稳定排序。(√ )

34.在平衡二叉树中,任意结点左右子树的高度差(绝对值)不超过 1。(√ )

35.拓扑排序是按 AOE 网中每个结点事件的最早发生时间对结点进行排序。(× )

36.冒泡排序算法关键字比较的次数与记录的初始排列次序无关。(×)

37.对线性表进行折半查找时,要求线性表必须以链式方式存储,且结点按关键字有序排列。(×)

38.散列法存储的思想是由关键字值决定数据的存储地址。(√)

39.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。(×)

40.具有 n 个结点的二叉排序树有多种,其中树高最小的二叉排序树是最佳的。(√)

41.直接选择排序算法在最好情况下的时间复杂度为 O(n)。(×)

数据结构与算法习题及答案

第1章绪论 习题 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成()。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 (2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。 A.存储结构B.存储实现 C.逻辑结构D.运算实现 (3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。 A.数据具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 (4)以下说法正确的是()。 A.数据元素是数据的最小单位 B.数据项是数据的基本单位 C.数据结构是带有结构的各数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 (5)以下与数据的存储结构无关的术语是()。 A.顺序队列B.链表C.有序表D.链栈 (6)以下数据结构中,()是非线性数据结构 A.树B.字符串C.队D.栈 6.试分析下面各程序段的时间复杂度。 (1)x=90;y=100; while(y>0) if(x>100) {x=x-10;y--;} elsex++; (2)for(i=0;i

数据结构复习提纲(整理)

复习提纲 第一章数据结构概述 基本概念与术语(P3) 1.数据结构是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科. 2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合 2.数据元素是数据的基本单位 3.数据对象相同性质的数据元素的集合 4.数据结构包括三方面内容:数据的逻辑结构.数据的存储结构.数据的操作. (1)数据的逻辑结构指数据元素之间固有的逻辑关系. (2)数据的存储结构指数据元素及其关系在计算机内的表示 ( 3 ) 数据的操作指在数据逻辑结构上定义的操作算法,如插入,删除等. 5.时间复杂度分析 -------------------------------------------------------------------------------------------------------------------- 1、名词解释:数据结构、二元组 2、根据数据元素之间关系的不同,数据的逻辑结构可以分为 集合、线性结构、树形结构和图状结构四种类型。 3、常见的数据存储结构一般有四种类型,它们分别是___顺序存储结构_____、___链式存储结构_____、___索引存储结构_____和___散列存储结构_____。 4、以下程序段的时间复杂度为___O(N2)_____。 int i,j,x; for(i=0;i=0)个具有相同性质的数据元素a1,a2,a3……,an组成的有穷序列 //顺序表结构 #define MAXSIZE 100 typedef int DataType; Typedef struct{ DataType items[MAXSIZE]; Int length; }Sqlist,*LinkList; //初始化链表 void InitList(LinkList *L){ (*L)=(LinkList)malloc(sizeof(LNode)); if(!L){ cout<<”初始化失败!”; return;

2017年数据结构期末考试题及答案A

2017年数据结构期末考试题及答案 一、选择题(共计50分,每题2分,共25题) 1 ?在数据结构中,从逻辑上可以把数据结构分为 C 。 A. 动态结构和静态结构B?紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2?数据结构在计算机内存中的表示是指 A ° A. 数据的存储结构 B.数据结构 C.数据的逻辑结构 D .数据元 素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A. 逻辑B?存储 C.逻辑和存储 D.物理 4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C ° A.数据的处理方法B?数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5. 在决定选取何种存储结构时,一般不考虑 A ° A.各结点的值如何B?结点个数的多少 C?对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6. 以下说法正确的是D ° A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据可以有相同的逻辑结构 7. 在以下的叙述中,正确的是B ° A. 线性表的顺序存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C?栈的操作方式是先进先出 D.队列的操作方式是先进后出

8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 A. 数据元素具有同一特点 B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C. 每个数据元素都一样 D. 数据元素所包含的数据项的个数要相等 9 ?链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C?不必事先估计存储空间 D.所需空间与其长度成正比 10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一 个结点,则采用 D 存储方式最节省运算时间。 A.单链表B ?给出表头指针的单循环链表 C.双链表D ?带头结点 的双循环链表 11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表B .静态链表 C.线性链表 D .顺序存储结构 12 .非空的循环单链表head的尾结点(由p所指向)满足C 。 A. p—>next 一NULL B. p — NULL C. p—>next == head D. p = = head 13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 A .p—> prior-> prior=s B .p—> prior-> n ext=s C.s —> prior—> n ext = s D.s —> prior—> prior = s 14 .栈和队列的共同点是C 。 A.都是先进后出 B .都是先进先出 C.只允许在端点处插入和删除元素 D .没有共同点

数据结构复习要点整理版

第一章数据结构概述 基本概念与术语 1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。 2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。 (补充:一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。(有时候也叫做属性。) 4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 (1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。 数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。 依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种: 1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。 2.线性结构:结构中的数据元素之间存在“一对一“的关系。若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。 3.树形结构:结构中的数据元素之间存在“一对多“的关系。若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。 4.图状结构:结构中的数据元素存在“多对多”的关系。若结构为非空集,折每个数据可有多个(或零个)直接后继。 (2)数据的存储结构:数据元素及其关系在计算机的表示称为数据的存储结构。 想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。逻辑结构可以映射为以下两种存储结构: 1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系。 2.链式存储结构:借助指针表达数据元素之间的逻辑关系。不要求逻辑上相邻的数据元素物理位置上也相邻。 5.时间复杂度分析:1.常量阶:算法的时间复杂度与问题规模n无关系T(n)=O(1) 2.线性阶:算法的时间复杂度与问题规模n成线性关系T(n)=O(n) 3.平方阶和立方阶:一般为循环的嵌套,循环体最后条件为i++ 时间复杂度的大小比较: O(1)< O(log 2 n)< O(n )< O(n log 2 n)< O(n2)< O(n3)< O(2 n )

经典数据结构面试题(含答案)

栈和队列的共同特点是__________________________ .栈通常采用的两种存储结构是______________________ .用链表表示线性表的优点是_______________________ 8.在单链表中,增加头结点的目的是___________________ 9.循环链表的主要优点是________________________- 12.线性表的顺序存储结构和线性表的链式存储结构分别是 __________________________ 13.树是结点的集合,它的根结点数目是_____________________ 14.在深度为5的满二叉树中,叶子结点的个数为_______________ 15.具有3个结点的二叉树有(_____________________ 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____________________ 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 ____________________________ 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为______________________ 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_______________________ 20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。 在计算机中,算法是指_______________________ 算法一般都可以用哪几种控制结构组合而成_____________________ .算法的时间复杂度是指______________________ 5. 算法的空间复杂度是指__________________________ 6. 算法分析的目的是__________________________

国家电网数据结构与算法试题

一、选择题 1.在逻辑上可以把数据结构分成(A) A.线性结构和非线性结构 B.动态结构和静态结构 C.紧凑结构和非紧凑结构 D.内部结构和外部结构 2.单链表中各结点之间的地址(C) A.必须连续 B.部分必须连续 C.不一定连续 D.以上均不对 3.在一个长度为n的顺序表中向第i个元素(0front==L C.P==NULL D.P->rear==L 12. 已知P为单链表中的非首尾结点,删除P结点的后继结点Q的语句为(A)。 A.P->NEXT=Q->NEXT;FREE(Q); B.Q->NEXT=P; FREE(Q); C.Q->NEXT=P->NEXT;FREE(Q); D.P->NEXT=S;S->NEXT=P; 13.循环队列SQ队满的条件是(B)。

数据结构复习资料,java数据结构期末考试

第二章算法分析 1.算法分析是计算机科学的基础 2.增长函数表示问题(n)大小与我们希望最优化的值之间的关系。该函数表示了该算法的时间复杂度或空间复杂度。增长函数表示与该问题大小相对应的时间或空间的使用 3.渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n 增加时表达式中增长最快的那一项。 4.渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出来的。算法的阶次为增长函数提供了一个上界。 5.渐进复杂度:增长函数的界限,由增长函数的主项确定的。渐进复杂度类似的函数,归为相同类型的函数。 6.只有可运行的语句才会增加时间复杂度。 7. O() 或者大O记法:与问题大小无关、执行时间恒定的增长函数称为具有O(1)的复杂度。 增长函数阶次 t(n)=17 O(1) t(n)=3log n O(log n) t(n)=20n-4 O(n) t(n)=12n log n + 100n O(n log n) t(n)=3n2+ 5n - 2 O(n2) t(n)=8n3+ 3n2O(n3) t(n)=2n+ 18n2+3n O(2n) 8.所有具有相同阶次的算法,从运行效率的角度来说都是等价的。 9.如果算法的运行效率低,从长远来说,使用更快的处理器也无济于事。 10.要分析循环运行,首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。(n 表示的是问题的大小) 11.分析嵌套循环的复杂度时,必须将内层和外层循环都考虑进来。 12.方法调用的复杂度分析: 如:public void printsum(int count){ int sum = 0 ; for (int I = 1 ; I < count ; I++) sum += I ; System.out.println(sun); } printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把printsum方法的复杂度乘以该循环运行的次数即可。所以调用上面实现的printsum方法的复 杂度为O(n2)。 13指数函数增长> 幂函数增长> 对数函数增长

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) 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) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

数据结构(C语言)【经典题库】含标准答案

《数据结构与算法》复习题 选择题 1.在数据结构中,从逻辑上可以把数据结构分为 C 。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A.逻辑 B.存储 C.逻辑和存储 D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。A.数据的处理方法 B.数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑 A 。 A.各结点的值如何 B.结点个数的多少 C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是 D 。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位

C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是 O(n2) 。 s =0; for( I =0; i

《数据结构(C语言版)》复习重点要点

《数据结构(C语言版)》复习重点 重点在二、三、六、七、九、十章,考试内容两大类:概念,算法 第1章、绪论 1. 数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 2. 数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 3. 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。 其4类基本结构:集合、线性结构、树形结构、图状结构或网状结构 4. 逻辑结构:是数据元素之间的逻辑关系的描述。 5. 物理结构(存储结构):是数据结构在计算机中的表示(又称映像)。 其4种存储结构:顺序存数结构、链式存数结构、索引存数结构、散列存数结构6. 算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 其5个重要特性:有穷性、确定性、可行性、输入、输出 7. 时间复杂度:算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间度量记作,T(n)=O(f(n));他表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称做算法的渐进时间复杂度,简称时间复杂度。例如: (a) {++x;s=0;} (b) for(i=1;i<=n;++i){++x;s += x;} (c) for(j=1;j<=n;++j) for(k=1;k<=n;++k){++x;s += x;} 含基本操作“x增1”的语句的频度分别为1、n和n2,则这3个程序段的时间复杂度分别为O(1)、O(n)和O(n2),分别称为常量阶、线性阶和平方阶。还可呈现对数阶O(log n)、指数阶O(2的n次方)等。 8. 空间复杂度:算法所需存储空间的度量记作,S(n)=O(f(n))。 第2章、线性表 1. 线性表:是最常用最简单的一种数据结构,一个线性表是n个数据元素的有限序列。 2. 线性表的顺序存储结构:是用一组地址连续的存储单元依次存储线性表的数据元素。其特点为逻辑关系上相邻的两个元素在物理位置上也相邻,可以随机存取表中任一元素。 存储位置计算:假设线性表的每个元素需占用L个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置,线性表的第i个数据元素ai的存储位置为LOC(ai)=LOC(a1)+(i-1)*L 式中LOC(a1)是线性表第一个元素a1的存储位置,通常称做线性表的起始位置或基地址。 3. 线性表的链式存储结构:是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。

2017数据结构期末考试试题及答案

2017《数据结构》期末考试试题及答案 《数据结构》期末考试试题及答案 1 ................................................................. 2..试题 1 答案............................................................ 7..《数据结构》期末考试试题及答案 2 ................................................................. 9..试题 2 答案........................................................................ 1.. 4. 《数据结构》期末考试试题及答案 3 ............................................................... 1..6试题 3 答案........................................................................ 2.. 1.

数据结构》期末考试试题及答案 1 单选题(每题 2 分,共 20 分) 1. 栈和队列的共同特点是 ( )。 A. 只允许在端点处插入和删除元素 B. 都是先进后出 C. 都是先进先出 D. 没有共同点 2. 用链接方式存储的队列,在进行插入运算时 ( ). A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D .头、尾指针可能都要修改 3. 以下数据结构中哪一个是非线性结构? ( ) A. 队列 B. 栈 C. 线性表 D. 二叉树 4. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(io ), A[2][2]存放 若有18个元素的有序表存放在一维数组 A[19]中,第一个元素放A[1]中, 现进行二分查找,则查找 A [3]的比较序列的下标依次为( A. 1 , 2, 3 B. 9, 5, 2, 3 C. 9, 5, 3 D. 9, 4, 2, 3 8. 对n 个记录的文件进行快速排序,所需要的辅助存储空间大致为 A. O (1) B. O (n ) C. O ( 1 og 2n ) D. O (n2) 9. 对于线性表( 7, 34, 55, 25, 64, 46, 20, 10)进行散列存储时,若选 用 H (K )=K %9 作为散列函数,则散列地址为 1 的元素有( )个, 位置在 676(10),每个元素占一个空间, 表示用 10 进制表示。 问 A[3][3] (10)存放在什么位置?脚注 (10) 5. A .688 B .678 C . 692 D . 696 树最适合用来表示 ( )。 A.有序数据元素 B.无序数据元素 6. C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据 二叉树的第 k 层的结点数最多为 ( ). A .2-1 B.2K+1 C.2K-1 D. 2k-1 7.

数据结构经典例题

数据结构经典例题 1.设计一个算法将L拆分成两个带头节点的单链表L1和L2。 void split(LinkList *&L,LinkList *&L1,LinkList *&L2) { LinkList *p=L->next,*q,*r1; //p指向第1个数据节点 L1=L; //L1利用原来L的头节点 r1=L1; //r1始终指向L1的尾节点 L2=(LinkList *)malloc(sizeof(LinkList));//创建L2的头节点 L2->next=NULL; //置L2的指针域为NULL while (p!=NULL) { r1->next=p; //采用尾插法将*p(data值为ai)插入L1中 r1=p; p=p->next; //p移向下一个节点(data值为bi) q=p->next; //由于头插法修改p的next域,故用q保存*p的后继节点 p->next=L2->next; //采用头插法将*p插入L2中 L2->next=p; p=q; //p重新指向ai+1的节点 } r1->next=NULL; //尾节点next置空 } 2.查找链表中倒数第k个位置上的节点(k为正整数)。若查找成功,算法输出该节点的data域的值,并返回1;否则,只返回0。 typedef struct LNode {int data; struct LNode *link; } *LinkList; int Searchk(LinkList list,int k) { LinkList p,q; int count=0; p=q=list->link; while (p!=NULL) { if (countlink; p=p->link; } if (count

《数据结构》期末考试试卷

广东创新科技职业学院期末考试试题(标明A 卷、B 或C 卷) 2018 —2019 学年第二学期考试科目:《数据结构》 (闭(开)卷 90分钟) 院系____________ 班级____________ 学号___________ 姓名 __________ 一、选择题(每小题 2 分,共 40 分) 1.计算机识别、存储和加工处理的对象被统称为()。 A .数据 B .数据元素 C .数据结构 D .数据类型 2.数据结构指的是数据之间的相互关系,即数据的组织形式。数据结构一般包括()三方面内容。 A .数据的逻辑结构、数据的存储结构、数据的描述 B .数据的逻辑结构、数据的存储结构、数据的运算 C .数据的存储结构、数据的运算、数据的描述 D .数据的逻辑结构、数据的运算、数据的描述3.数据的逻辑结构包括()。 A .线性结构和非线性结构 B .线性结构和树型结构 C .非线性结构和集合结构

D .线性结构和图状结构 4.()的特征是:有且仅有一个开始结点和一个终端结点,且所有结点都最多只有一个直接前驱和一个直接后继。 A .线性结构 B .非线性结构 C .树型结构 D .图状结构 5. 评价一个算法时间性能的主要标准是()。 A .算法易于调试 B .算法易于理解 C .算法的稳定性和正确性 D .算法的时间复杂度 6. 下述程序段①中各语句执行频度的和是()。 s=0; ① for(i=1;i<=i;j++) s+=j; A .n-1 B .n C .2n-1 D .2n 7. 下面程序段的时间复杂度为()。 for(i=0;i

数据结构(第4版)习题及实验参考答案数据结构复习资料完整版(c语言版)

数据结构基础及深入及考试 复习资料 习题及实验参考答案见附录 结论 1、数据的逻辑结构是指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。 2、数据的物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。存储结构可分为4大类:顺序、链式、索引、散列 3、抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)。它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。 4、算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。 5、在数据结构中,从逻辑上可以把数据结构分成( C ) A、动态结构和表态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 6、算法的时间复杂度取决于( A ) A、问题的规模 B、待处理数据的初态 C、问题的规模和待处理数据的初态 线性表 1、线性表的存储结构包括顺序存储结构和链式存储结构两种。 2、表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为( E ),删除一个元素需要移动的元素的个数为( A )。 A、(n-1)/2 B、n C、n+1 D、n-1 E、n/2 F、(n+1)/2 G、(n-2)/2 3、“线性表的逻辑顺序与存储顺序总是一致的。”这个结论是( B ) A、正确的 B、错误的 C、不一定,与具体的结构有关 4、线性表采用链式存储结构时,要求内存中可用存储单元的地址( D ) A、必须是连续的 B、部分地址必须是连续的C一定是不连续的D连续或不连续都可以 5、带头结点的单链表为空的判定条件是( B ) A、head==NULL B、head->next==NULL C、head->next=head D、head!=NULL 6、不带头结点的单链表head为空的判定条件是( A ) A、head==NULL B、head->next==NULL C、head->next=head D、head!=NULL 7、非空的循环单链表head的尾结点P满足( C ) A、p->next==NULL B、p==NULL C、p->next==head D、p==head 8、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( B ) A、O(1) B、O(n) C、O(n2) D、O(nlog2n) 9、在一个单链表中,若删除p所指结点的后继结点,则执行( A )

数据结构期末考试试题及答案

贵州大学理学院数学系信息与计算科学专业 《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 一、单项选择题 1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。 (A)、正确性(B). 可行性(C). 健壮性(D). 输入性 2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。 for(i=n-1;i>=0;i--) for(j=0;jnext; p->next= Q.rear->next; (D)、p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于() (A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和 (C)、各叶子结点的带权路径长度之和(D)、根结点的值 10.线索二叉链表是利用()域存储后继结点的地址。 (A)、lchild (B)、data (C)、rchild (D)、root 二、填空题

数据结构经典算法试题

1.假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。【北京大学1998 三、1 (5分)】 LinkedList Union(LinkedList la,lb) { pa=la->next; pb=lb->next; la->next=null; while(pa!=null && pb!=null) ∥当两链表均不为空时作 if(pa->data<=pb->data) { r=pa->next; pa->next=la->next; ∥将pa结点链于结果表中,同时逆置。 la->next=pa; pa=r; } else {r=pb->next; pb->next=la->next; ∥将pb结点链于结果表中,同时逆置。 la->next=pb; pb=r; } while(pa!=null) ∥将la表的剩余部分链入结果表,并逆置。 {r=pa->next; pa->next=la->next; la->next=pa; pa=r; } while(pb!=null) {r=pb->next; pb->next=la->next; la->next=pb; pb=r; } }

1)设有两个无头结点的单链表,头指针分别为ha,hb,链中有数据域data,链域next,两链表的数据都按递增序存放,现要求将hb表归到ha表中,且归并后ha仍递增序,归并中ha表中已有的数据若hb中也有,则hb中的数据不归并到ha中,hb的链表在算法中不允许破坏。【南京理工大学1997 四、3(15分)】 LinkedList Union(LinkedList ha, hb)∥ha和hb是两个无头结点的数据域值递增有序的单链 {LinkedList 表,本算法将hb中并不出现在ha中的数据合并到ha中,合并中不能破坏hb链表。 la; la=(LinkedList)malloc(sizeof(LNode)); la->next=ha; pa=ha; pb=hb; pre=la; while(pa&&pb) if(pa->datadata)∥处理ha中数据 {pre->next=pa;pre=pa;pa=pa->next;} else if(pa->data>pb->data)∥处理hb中数据。 {r=(LinkedList)malloc(sizeof(LNode)); r->data=pb->data; pre->next=r; pre=r; pb=pb->next;} Else∥处理pa- >data=pb->data; {pre->next=pa; pre=pa; pa=pa->next;∥两结点数据相等时,只将ha的数据链入。 pb=pb->next; } if(pa!=null)pre->next=pa;∥将两链表中剩余部分链入结果链表。 else pre->next=pb; free(la); }

西安交通大学大数据结构复习资料

第一章绪论 1、数据结构的主要研究内容 ①数据的逻辑结构--数据关系之间的逻辑关系 ②数据的存储结构--数据的逻辑结构在计算机中的表示 2、数据逻辑结构的种类:集合、线性表、树和图的性质和特点。 ?集合结构中的元素是各自独立的,元素之间没有联系 ?线性结构中的元素是一个接一个串联起来的,它有一个头元素和一个尾元素,其余为中间元素;每个中间元素既有前驱元素,又有后继元素 ?在树结构中,树根结点只有后继结点,而没有前驱结点;除树根结点外,每个结点都有唯一一个前驱结点,又称为是父结点或双亲结点 ?在图结构中,每个结点或称顶点都可以有任意多个前驱结点和任意多个后继结点。 ?树结构是图结构的特例,线性结构是树结构的特例。为了区别于线性结构,时常把树结构和图结构称为非线性结构。 3、数据结构的二元组定义,能根据给出的二元组来判断数据的逻辑结构类型。 ?集合结构中的元素集合K和二元关系R分别为: K={A,B,C,D,E,F,G} R={ } ?线性结构中的元素集合K和二元关系R分别为: K={A,B,C,D,E,F,G} R={} ?树结构中的元素集合K和二元关系R分别为: K={A,B,C,D,E,F,G} R={} ?图结构中的元素集合K和二元关系R分别为: K={A,B,C,D,E,F,G} R={} 4、了解数据的几种存储结构(物理结构)及它们各自的性质和特点。 (1)顺序的方法: 将逻辑上相邻的元素存储到物理上相邻的存储位置. 常用于线性的数据结构. (2)链式结构:给结点附加一个指针字段, 指出其后继节点的位置, 即存放结点的存储单元分为两部分: (3)散列(hashing) 结构:散列的方法是用结点的关键字值直接计算出结点的存储地址。这个取值函数也称为散列函数。 5、数据的逻辑结构、存储结构和总的数据结构之间的关系 ?逻辑结构相同,但存储结构不同,则认为是不同的数据结构。如顺序表和链表具有相同的逻辑结构,但存储结构分别为顺序结构和链表结构 6、算法的设计要求有那些,会结合实际的语言设计来说明这些要求 1)正确性:对于合法的输入产生符合要求的输出;

数据结构期末考试试题含答案

2005年-2006学年第二学期“数据结构”考试试题(A) 姓名学号(序号)_ 答案隐藏班号 要求:所有的题目的解答均写在答题纸上(每张答题纸上要写清楚姓名、班号和学号),需写清楚题目的序号。每张答题纸都要写上姓名和序号。 一、单项选择题(每小题2分,共20分) 1.数据的运算a 。 A.效率与采用何种存储结构有关 B.是根据存储结构来定义的 C.有算术运算和关系运算两大类 D.必须用程序设计语言来描述 答:A。 2. 链表不具备的特点是 a 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C.不必事先估计存储空间 D.所需空间与其长度成正比 答:参见本节要点3。本题答案为:A。 3. 在顺序表中删除一个元素的时间复杂度为 c 。 A.O(1) B.O(log2n) C.O(n) D.O(n2) 答:C。 4.以下线性表的存储结构中具有随机存取功能的是 d 。 A. 不带头结点的单链表 B. 带头结点的单链表 C. 循环双链表 D. 顺序表 解 D。 5. 一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是 c 。

A.edcba B.decba C.dceab D.abcde 答:C。 6. 循环队列qu的队空条件是 d 。 A. (qu.rear+1)%MaxSize==(qu.front+1)%MaxSize B. (qu.rear+1)%MaxSize==qu.front+1 C.(qu.rear+1)%MaxSize==qu.front D.qu.rear==qu.front 答:D。 7. 两个串相等必有串长度相等且 b 。 A.串的各位置字符任意 B.串中各位置字符均对应相等 C.两个串含有相同的字符 D.两个所含字符任意 答:B。 8. 用直接插入排序对下面四个序列进行递增排序,元素比较次数最少的是c 。 A.94,32,40,90,80,46,21,69 B.32,40,21,46,69,94,90, 80 C.21,32,46,40,80,69,90,94 D.90,69,80,46,21,32,94, 40 答:C。 9. 以下序列不是堆(大根或小根)的是 d 。 A.{100,85,98,77,80,60,82,40,20,10,66} B.{100,98,85,82,80, 77,66,60,40,20,10} C.{10,20,40,60,66,77,80,82,85,98,100} D.{100,85,40,77,80, 60,66,98,82,10,20}

数据结构与算法试题

数据结构与算法试题 一、单选题 1、在数据结构的讨论中把数据结构从逻辑上分为 (C ) A 内部结构与外部结构 B 静态结构与动态结构 C 线性结构与非线性结构 D 紧凑结构与非紧凑结构。 2、采用线性链表表示一个向量时,要求占用的存储空间地址(D ) A 必须就是连续的 B 部分地址必须就是连续的 C 一定就是不连续的 D 可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。 A n B n/2 C (n-1)/2 D (n+1)/2 4、在一个单链表中,若q结点就是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。 A s→link = p→link;p→link = s; B p→link = s; s→link = q; C p→link = s→link;s→link = p; D q→link = s;s→link = p; 5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。 A 起泡排序 B 堆排序 C 锦标赛排序 D 快速排序 6、设有两个串t与p,求p在t中首次出现的位置的运算叫做( B )。 A 求子串 B 模式匹配 C 串替换 D 串连接 7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放该数

组至少需要的存储字数就是( C )。 A 80 B 100 C 240 D 270 8、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。 A 栈 B 队列 C 循环队列 D 优先队列 9、一个队列的进队列顺序就是1, 2, 3, 4,则出队列顺序为( C )。 10、在循环队列中用数组A[0、、m-1] 存放队列元素,其队头与队尾指针分别为front与rear,则当前队列中的元素个数就是( D )。 A ( front - rear + 1) % m B ( rear - front + 1) % m C ( front - rear + m) % m D ( rear - front + m) % m 11、一个数组元素a[i]与( A )的表示等价。 A *(a+i) B a+i C *a+i D &a+i 12、若需要利用形参直接访问实参,则应把形参变量说明为( B )参数。 A 指针 B 引用 C 值 D 变量 13、下面程序段的时间复杂度为( C ) for (int i=0;i

相关文档
相关文档 最新文档