数据结构题库-应用题(上海杉达学院期末总复习题)

《数据结构》――应用题复习概要

2022年4月1.写出执行下列程序段时,语句S的执行次数。

for (i=1; i

for (j=n; j>=i; j--)

S;

2.假设n为2的乘幂,并且n>2,试求下列算法的时间复杂度及变量count的值(以n的

函数形式表示)

int Time(int n)

{ int count:=0; x:=2;

while (x

{ x:=2*x; count:=count +1 };

return (count);

}

3.已知双向链表、指针P、Q所指的结点和结点的结构(数据域DATA、指针域LL及RL),

分别画出经过下述算法后的双向链表。

(1)Q->RL = P->RL; P->RL = Q; Q->RL->LL = Q; Q->LL = P;

(2)Q->RL = P; P->LL->RL = Q; Q->LL = P->LL; P->LL = Q;

(3)P->LL->RL = P->RL; P->RL->LL = P->LL;

4.设栈S的初始状态为空,元素a, b, c, d, e和f依次通过栈S,试分析下列各组出栈次序,

每组所用的最大容量。(1)a,b,c,d,e,f;(2)f,e,d,c,b,a;(3)b,d,c,f,e,a

5.有字符串A+B*C-D,试写出利用栈操作将该字符串序列改为ABC*+D-的操作步骤,这

里用X和S分别表示字符的进栈和出栈操作(例如把字符ABCD改为ACBD的操作步骤为XSXXSSXS)。

XSXXSXXSSSXXSS

6.一棵二叉树的结点数采用顺序存储结构,存于下列数组T中,画出该二叉树。

b

7.已知一棵树的双亲表示如下,其中各兄弟结点依此排列,试画出该树及对应的孩子兄弟

表示的二叉树。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Data A B C D E F G H I J K L M N O

Parent 0 1 1 1 2 2 3 3 4 4 5 6 6 7 8

A

B

E C

D

K F

L

M

G

N H

O

I

J

8.有一个完全二叉树按层次顺序存放在一维数组中,如下所示:请指出结点P的父结点,

左子女,右子女。

9.将下列二叉链表改为先序线索链表

1 2 3 4 5 6 7 8

data A B C D E F G H

LTag 0 0 1 0 1 0 0 0

lchild 2 4 0 7 0 0 0 0

RTag 0 0 0 0 1 0 0 0

rchild 3 5 6 8 0 0 0 0

10.下表给出用带二个标识的按先序遍历进行顺序存储的二叉树,对于结点k,规定:

ltag(k)=0,k有左孩子;ltag(k)=1,k无左孩子;rtag(k)=0,k有右孩子;rtag(k)=1,k 无右孩子。

1 2 3 4 5 6 7 8 9 10

ltag 0 0 1 1 1 1 0 1 0 1

data A G E I D J H C F B

rtag 0 0 0 1 0 1 0 1 1 1

11.已知一棵二叉树的后序遍历为CDBGHFIEA,中序遍历为CBDAGFHEI。画出此二叉树

并写出其先序遍历序列。

A

B E

C F I

D

G H

12.一棵二叉树的先序序列和中序序列分别如下,画出该二叉树并写出它的后序遍历的序

列。先序序列:ABDEHCFIG 中序序列:DBHEAFICG

后序遍历为DHEBIFGCA

13.已知一棵二叉树的中序遍历为DBHEAFICG,后序遍历为DHEBIFGCA。画出此二叉树

并写出其先序遍历序列。

先序遍历:ABDEHCFIG

14.一棵二叉树的先序序列和中序序列分别如下,画出该二叉树的中序线索二叉链表。

先序序列:ABCDEFGHIJ 中序序列:CBEDAGHFJI

15.一棵二叉树的先序序列和中序序列分别如下,画出该二叉树的二叉链表。

先序序列:ABDFCEG 中序序列:BFDAEGC

A

F

16.一棵二叉树的先序、中序和后序序列分别如下,试求出空格处的内容,并画出该二叉树。

先序:A B D F K I C E H J G

中序:D B K F I A H E J C G

后序:D K I F B H J E G C A

先序:ABDFKICEHJG

中序:DBKFIAHEJCG

后序:DKIFBHJEGCA

17.二叉树的先序、中序和后序序列分别如下,试求出空格处的内容,并构造出该二叉树

先序序列 A BC D EF G H

中序序列BDE C AG F H

后序序列 E DC B GH F A

18.已知一棵二叉树的层次遍历序列为ABCDEFGHIJ,中序遍历序列为DBGEHJACIF,请

画出该二叉树。

19.对下面的两棵树,分别画出其顺序存储结构。

A B D I J E K C F G A B D E I J C F

20.一棵二叉树的结点数据采用顺序存储结构,存储于下列数组T中,画出该二叉数。

T e a f d g c j l h b

21.用权分别为2,3,6,7,8次序的叶子结点构造一棵哈夫曼树(结点标出权值),若叶

子结点次序改为8,7,6,3,2,所构造的哈夫曼树是否相同?

22.以数据集{3,4,5,8,12,18,20,30}为叶子结点的权值,(1)构造一棵哈夫曼树;

(2)计算其带权路径长度。

23.按照给定的权值{10,12,14,5,30,40},构造相应的赫夫曼树。

24.以数据集{15,3,14,2,6,9,16,17}为叶子结点的权值,(1)构造一棵哈夫曼树;

(2)计算其带权路径长度。

25.有一电文中使用5各字符A,B,C,D,E,他们出现的频率依次为4,7,5,2,9,试为每

个字符设计哈夫曼编码。

WPL=60

I

A

B C

D E F G

J K

A

B C

D E F

J

I

27

1116

6

2459

7

D A C B E

1

1

1

1

A: 001

B: 10

C: 01

D: 000

E: 11

26.给定权的集合{5,29,7,8,14,23,3,11},构造相应哈夫曼树。

WPL=104+75+92=271

27.画出根据Prim算法对下列连通网从顶点A出发构造其最小生成树的过程。

A B

6 23 8 5

G 4 E 12 C

7 25 15 10

F D

28.已知某系统在通信联络中可能出现8种字符,A,B,C,D,V,W,X,Y,其概率分别为0.05,

0.29,0.07,0.08,0.14,0.23,0.03,0.11,试设计赫夫曼编码。

20

18

29.设有带权无向图如右图所示

(1)请写出该图的邻接矩阵。

(2)请画出该图的邻接表。

(3)列出从顶点1出发深度优先遍历该图所得到的

一个顶点序列。

(4)列出从顶点1出发广度优先遍历该图所得到的

一个顶点序列。

(5)请画出该图的一棵最小生成树。

30.已知图G的邻接矩阵如下,分别写出从顶点A出发的深度优先和广度优先搜索序列。

A B C D E

A 0 1 1 1 0

B 0 0 1 0 1

C 0 0 0 1 0

D 0 0 0 0 0

E 0 0 0 0 0

31.如右图所示有向图

(1)写出邻接矩阵

(2)求出其最小生成树

32.已知图的邻接矩阵如下,图的顶点依此为V0,V1,V2,V3,V4,V5,V6,分别写出从V0,V5

出发的深度优先和广度优先的遍历序列。

深度:0 1 3 4 2 5 6

5 3 0 1

6 2 4

广度:0 1 2 3 4 6 5

5 3 4

6 0 1 2

33.已知图的邻接矩阵如左下方所示:(1)画出其邻接表;(2)若在它的邻接表存储结构中,

每个顶点邻接序号是从小到大链接时,写出它根据邻接表以顶点V1为出发点的广度优先搜索序列和深度优先搜索序列。

V1 V2 V3 V4 V5 V6

V1 0 1 0 1 1 0 0 C1

V2 0 0 1 0 1 0 1 C2

V3 0 0 0 0 0 1 2 C3

1 2 ^

5 ^

5 ^

2 4 ^

V4 0 0

0 0 0 0 3 C4

V5 0 0 1 1 0 1 4 C5

V6 0 0 0 0 0 0 5 C6^

34.有向图G的邻接表如右上所示,若在图中增加弧,该邻接表需做何种

修改?(可直接在给出的邻接表上修改)

35.假定无向图G有6个结点和9条边,并依次输入这9条边为(0,1),(0,2),(0,4),

(0,5),(1,2),(2,3),(2,4),(3,4),(4,5)。试从顶点0出发分别写出按深度优先搜索和广度优先搜索进行遍历得到的遍历结点序列。

深度:0 1 2 3 4 5

广度:0 1 2 4 5 3

36.对于带权的连通图G(如左下图所示),从V6出发构造最小生成树。

37.已知一有向图G的链接表存储结构如右上所示,画出有向图,并写出从结点V1出发的

深度优先遍历结点序列。

38.求出下图的一棵最小生成树。

39.已知图的邻接矩阵如下,(1)试画出其邻接表;(2)若在它的邻接表存储结构中,每个

顶点的邻接点序号是从小到大链接,写出以顶点V1为出发点的唯一的深度优先遍历序列。

2 5

1 3 6 8

4 7

6

7

5

4

8

5

4

3

5

8

5

3

6

⎥⎥

⎥⎥⎥

⎥⎥⎦

⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡010000000100100000100000011100001110654321V V V V V V

V1V2V3V6V5V4

40. 画出以顶点V1为初始源点遍历下图所得到的DFS 和BFS 生成森林

V1

V3 V4 V2 V5 V6 V7 V8

41. A B C D E F V0

0 1 0 1 0 1 1 0 1 0 0 0 V1 0 1 0 1 1 1 1 0 1 0 0 0 V2 0 0 1 0 0 1 1 0 1 0 1 0 V3

42. 已知图的邻接表如上所示,根据邻接表写出从V 0出发的深度优先和广度优先遍历序列。

43. 画出根据Prim 算法对下列连通网从顶点A 出发构造其最小生成树的过程。

A B

6 23 8 5 G 4 E 12 C

7 25 15 10 F D

44. 下图表示一个地区的交通图,顶点表示城市,边表示城市间的公路,边上的数值(权)

表示修建公路的代价,要求从顶点A 出发构造能连通每个城市且总代价最低的5条公路。

2 1

3 ^

0 2 ^ 3 0 1 ^

2

0 ^

20

18

A

E

D

C B

F

2

3

4

6

8

45.求出下图的最小生成树。

46.请画出左下带权图的一棵最小生成树。

47.如右上有向图中,顶点表示课程,弧表示课程间的先后次序,例如弧表示先学习

课程C1再学习课程C3,如果某人每次只能学习一门课程则它应该如何安排学习?

48.给出左下图的所有拓扑序列。

49. 请写出右上图所有可能的拓扑序列。

50. 设有向图G =(V ,E ),V ={1,2,3,4,5,6},E ={<1,2>,<1,3>,<2,5>,<3,

6>,<6,5>,<5,4>,<6,4>}。请写出图G 中顶点的所有拓扑序列。 0 1 2 5 4 3 0 2 1 5 4 3 0 2 5 1 4 3

51.

已知某图邻接表如下图所示,分别写出从V0,V3出发的深度优先和广度优先遍历序列。

V0 V1 V2 V3 V4 V5 4 2 3 5

1 ^

4 5 0 ^

3 0 ^

4 2

5 0 ^ 2 0 3 5 ^ 4

3

1

0 ^

1 3

5 6

2 4

52.求出左下图的所有拓扑序列。

53.一项工程P有6个子工程组成,这些子工程间的优先关系用下列的有向无环图表示,使

给出工程P的4种可能的施工顺序。

P1P2P4P3P5P6

P1P2P4P5P3P6

P1P4P2P3P5P6

P1P4P2P5P3P6

P1P4P3P2P5P6

P1P4P3P5P2P6

P1P4P5P2P3P6

P1P4P5P3P2P6

P4P1P2P3P5P6

P4P1P2P5P3P6

P4P1P3P2P5P6

P4P1P3P5P2P6

P4P1P5P2P3P6

P4P1P5P3P2P6

54.按下列邻接矩阵分别画出自顶点1出发进行遍历所得的深度优先和广度优先遍历生成

树。

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

10

9

8

7

8

5

4

3

2

1

55.已知图的邻接矩阵如下,若在它的邻接表存储结构中,每个顶点的邻接点序号是从小到

大链接时,写出其拓扑有序序列。

1

1

1

1

1

1

1

1

1

1

1

8

7

6

5

4

3

2

1

V

V

V

V

V

V

V

V

1 2 3 4 6 5 7 8

56.简答下列各题:(1)什么叫二叉排序树?(2)按给定的输入序列:45,24,53,12,

42,90构成一棵二叉排序树;(3)由n个结点组成的二叉排序树是唯一的吗?如不唯一,请举例说明;(4)如何用二叉排序树方法对关键字序列:45,24,53,12,42,90进行排序。

57.从一棵空的二叉排序树开始,将以下关键码值依次插入:25,13,15,31,7,20,37,请画出插

入全部完成后的二叉排序树。

58.对于给定结点的数据集合

D={55,13, 20,15,31,7, 18}

(1)依次取出D中各数据,构成一棵二叉排序树BT。

(2)求等概率情况下的平均查找长度ASL。

(3)画出在二叉排序树BT中删除“13”后的树的结构。

ASL=(1+2+3*2+4*2+5)/7=22/7

or (参考:中序遍历序列为准则)

59.分别建立结点值(关键字值)为12,24,30,37,45,53,96及37,24,12,30,53,

45,96的二叉排序树,并说明在查找等概率情况下的平均查找长度。

60.对给定的关键字序列7,16,4,8,20,

9,6,18,5,画出对应的二叉排序树,

并再画出删除关键字为16的结点后的二

叉排序树。

61.一棵二叉排序树结构如右图所示,各结点

的值从小到大依次为1~8,请标出各结

点的值。

62.设有一个长为10的有序表S[1 .. 10],画

出对其进行折半查找的判定树,并求出等

概率情况下查找成功的平均查找长度。

63.画出长度为18的有序顺序表进行二分法

查找的判定树,并指出在等概率时查找成功的平均查找长度ASL以及查找失败时所需的最多的关键字比较次数。

64.设二叉排序树中关键字有1到1000的整数构成,现要查找关键字为363的结点,下述

关键字序列中哪一个不可能是在二叉排序树上查到的序列?(1)2,252,401,398,330,344,397,363;(2)924,220,911,244,898,258,362,363;(3)925,202,911,240,912,245,363;(4)2,399,387,219,266,382,384,278,363

65.有一组关键值序列(38,19,65,97,49,41,95,1,73),采用冒泡排序方法由小到

大进行排序,请写出每趟的结果。

19,38,65,49,41,95,1,73,97

19,38,49,41,65,1,73,95

19,38,41,49,1,65,73

19,38,41,1,49,65

19,38,1,41,49

19,1,38,41,

1,19,38

Or

1, 38, 19, 65, 97, 48, 41, 95, 73

1, 19, 38, 41, 65, 97, 48, 73, 95

1, 19, 38, 41, 48, 65, 97, 73, 95

1, 19, 38, 41, 48, 65, 73, 97, 95

1, 19, 38, 41, 48, 65, 73, 95, 97

66.设有序列38,27,54,86,65,2,16,38,写出用快速排序法对该序列进行升序排序

的每一趟结果。

16,27,2,38,65,86,54,38

2,16,27,38,38,54,65,86

67.对下列数据表,写出采用快速排序算法排序的每一趟的结果,并标明第一趟排序过程中

的数据移动情况。(60,20,31,1,5,44,55,61,200,30,80,150,4,29)

68.设待排序文件的关键码为(512,275,908,677,503,765,612,897,154,170)以第一元素为分

界元素进行快速排序(按关键码值递增顺序),请给出第一趟扫描后的结果。

69.对下列数据表,写出采用快速排序算法排序的每一趟的结果。(100,12,20,31,1,5,

44,66,61,200,30,80,150,4,8)

70.已知待排序文件各记录的排序码顺序如下: 72,73,71,23,94,16,05,68,请列出快速排序过

程中每一趟的排序结果。

71.初始输入序列的关键值如下:(72,73,71,23,94,16,05,68,48,19,26)试采

用二路归并排序法进行从小到大的排序,写出该序列在每遍扫描时的合并过程。

72,73,23,71,16,94,05,68,19,48,26

23,71,72,73,05,16,68,94,19,26,48

05,16,23,68,71,72,73,94,19,26,48

05,16,19,23,26,48,68,71,72,73,94

72.利用堆排序的“筛选”方法将序列36,27,41,10,13,21,19,25调整为“小顶堆”。

73.将下面数据建成一个“大顶堆”(70,12,20,31,1,5,44,66,61,200,30,80,

150,4,28)

74.有一个数据序列:25,50,70,100,43,7,12。现采用堆排序算法进行排序,写出每趟的结果。

75.设有哈希函数为:H(key) = key MOD 11,哈希表的长度为11,解决冲突的方法为线性

探测再散列法,关键字的输入序列为:(18,34,58,26,75,67,48,93,81),试构

成功

不成功

ASL成功=(1+2+1+1+2+2+1+5+1)/9=16/9

ASL不成功=(1+10+9+8+7+6+5+4+3+2+1)/11=56/11

76.设哈希表容量为7,给定表{30,36,47,52,34},散列函数H(k)=k mod 6,采用线性

探测再散列法解决冲突,求(1)构造此哈希表;(2)求查找数34需要进行比较的次数

77.设有一哈希表如图所示,该哈希表用二次探测再散列法解决冲突,其哈希函数为:H(K)

= K mod 13, 从该哈希表中检索出关键码35需几次比较?请写出比较顺序。

1.35 mod 13 = 9

2.(9+1) mod 13 = 10

3.(9-1) mod 13 = 8

4.(9+4) mod 13 = 0 (OK)

78.设哈希函数H(X) = K MOD 7,若输入序列为{100, 90, 120, 60, 78, 35, 42, 31, 15, 20, 22,

12, 16, 27},求:(1)构造链地址法哈希表;(2)求出在等概率查找情况下查找成功和不成功时的平均查找长度。

ASL成功=(1+2+1+2+3+4+1+2+1+1+1+1+2+3)/14=1.79

ASL不成功=(3+5+3+2+2+2+4)/7=3

79.设散列函数为H(K)=K MOD 7,用线性探测法解决冲突,散列表的地址空间为0 …

6,请画出插入关键值23,14,9,6,30,12,18后的散列表,并求在等概率下查找成功的平均查找长度。

80.设散列表的长度为9,散列函数为H(x)=i / 3,其中i为关键值x中第一个字母在字

母表中的序号,若关键值的输入序列为Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec,用链地址法解决冲突,要求:(1)构造散列表;(2)在等概率情况下,查找成功的平均查找长度。

81.已知元素集合为{ Jan, Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov, Dec },试按元

素的次序依次插入一棵初始时为空的二叉排序树,并求其在等概率情况下检索成功的平均检索长度。

82.根据堆的定义分别判断下列序列是否为堆,若不是,请调整为堆。

(1){50,36,41,19,23,4,20,18,12,22}

(2){86,5,47,1,41,11,59,15,48,19}

83.对于表达式(a+b)*(c+d)*(e-f),(1)画出相应的二叉树表示;(2)给出它的前缀(波兰

式)表示;(2)给出它的后缀(逆波兰式)表示;(3)给出它的中缀表示。

数据结构复习题库 (2)

数据结构题库 一、填空题 1.在双链表中要删除已知结点*s,其时间复杂度为O(1)。 2.在任何一棵二叉树中,度为0的结点n0和度为2的结点n2之间的关系是n0=n2+1 。 3.已知完全二叉树的第4层有4个结点,则其叶子结点数是 6 。 4.在仅有尾指针rear指示的单循环链表rear中,在表尾插入一个结点s的语句序列是 s->next=rear->next;rear->next=s 。 5.栈顶的位置是随着入栈出栈操作而变化的。 6.数据结构一般包括三个方面的内容:数据的逻辑结构、数据的存储结构及对数据的运算。 7.数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机 的。 8.在带头结点的双链表head中,指针p所指结点是开始结点的条件是p->prior==head。 9.在选择排序、堆排序、快速排序、直接插入排序中,稳定的排序方法是直接插入排序。 10.在具有n个结点的双链表中做插入、删除运算,平均时间复杂度为O(n)。 11.队列的队尾位置随着入队而变化。 12.快速排序在最坏情况下的时间复杂度是O(n2)。 13.n ( n > 0 )个顶点连通无向图的生成树恰有n-1条边。 14.在一个长度为n的顺序表中第i个元素(1 ≤i ≤n+1)之前插入一个元素时,需向 后移动n-i+1个元素。 15.用数组A[m]来存放循环队列q的元素,且它的头、尾指针分别为front和rear,队列满 足条件(q->rear+1)%m==q->front,则队列中当前的元素个数为m-1。 16.一个二叉树中,度为2的结点有3个,则叶结点有4个。 17.顺序栈s存储在数组s->data[max]中,对s进行出栈操作,执行的语句序列是 x=s->data[s->top];s->top--;。 18.二叉树通常有顺序存储结构和链式存储结构两种。 19.二叉树在二叉链表表示方式下,p指向二叉树的根结点,经运算s=p;while(s->rchild) s=s->rchild后,s指针指向右子树最右结点。 2、在具有n个结点的二叉链表中,有n+1 个空链域。 3、一个无向图采用邻接矩阵存储方法,其邻接矩阵一定是一个对称矩阵。 4、在n个顶点的无向完全图中,应有n(n-1)/2条边,在n个顶点的有向完全图中,应有n(n-1)条边。 5、在快速排序、堆排序、归并排序中,归并排序是稳定的。 6、设一棵完全二叉树128个结点,则该完全二叉树的深度为8 ,有64 个叶子结点。 7、设指针变量p指向单链表中结点A,则删除结点A的语句序列为: q=p->next;p->data=q->data;p->next= q->next;feee(q);

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 1.线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是一种 的存储结构。 a. 随机存储; b.顺序存储; c. 索引存取; d. HASH 存取 2.一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是 。 a. edcba; b. decba; c. dceab; d.abcde 3.一个队列的入队序列是1,2,3,4,则队列的输出序列是 。 a. 4,3,2,1; b. 1,2,3,4; c. 1,4,3,2; d.3,2,4,1 4.在一个单链表中,已知p 结点是q 结点的直接前驱结点,若在p 和q 之间插入结点s ,则执行的操作是 。 a. s->nxet=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; 5.设有两个串p,q ,求q 在p 中首次出现的位置的运算称作 。 a.联接 b.模式匹配 c.求子串 d.求串长 6.二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到8,列下标j 的范围从1到10,则存放M 至少需要 个字节。 a. 90 b.180 c.240 d.540 7.在线索二叉树中,结点p 没有左子树的充要条件是 。 a. p->lch==NULL b. p->ltag==1 c. p->ltag==1且p->lch=NULL d. 以上都不对 8.在栈操作中,输入序列为(A ,B ,C ,D ),不可能得到的输出序列为:______ A 、(A , B , C , D ) B 、(D ,C ,B ,A ) C 、(A ,C ,D ,B ) D 、(C ,A ,B ,D ) 9.已知某二叉树的后序序列是dabec ,中序序列是debac ,则它的先序序列是 。 A 、acbed B 、decab C 、deabc D 、cedba 10.设矩阵A 是一个对称矩阵,为了节省存储空间,将其下三角部分(见下图)按行序存放在一维数组B[1..n(n-1)/2]中,对任一上三角部分元素)(j i a ij ,在一维数组B 的存放位置是 。

数据结构应用题练习

数据结构应用题练习 一、简介 数据结构是计算机科学中的重要概念,是指数据组织、管理和存储的方式。它是计算机处理和分析数据的基础,在各个领域都有广泛的应用。本文将通过几个数据结构应用题的练习,展示数据结构在实际问题中的应用。 二、链表应用题 链表是一种常见的数据结构,在许多场景中都有广泛的应用。假设有一组学生的信息,包括学生姓名、年龄和成绩,请使用链表来存储并实现以下操作: 1. 添加学生信息 2. 删除学生信息 3. 查找学生信息 4. 修改学生信息 三、栈应用题 栈是一种后进先出(LIFO)的数据结构,在很多应用中都有不可或缺的地位。以网页浏览器的前进和后退功能为例,使用栈可以很方便地实现该功能。请描述如何使用栈来实现浏览器的前进和后退功能,并分析算法的时间复杂度。

四、队列应用题 队列是一种先进先出(FIFO)的数据结构,常用于处理排队等场景。现假设有一个任务队列,多个任务需要按照顺序执行。请使用队列来 存储任务,并实现以下操作: 1. 添加任务到队列 2. 从队列中取出并执行任务 3. 判断队列是否为空 4. 清空队列中的所有任务 五、树应用题 树是一种重要的非线性数据结构,在很多领域都有广泛应用。假设 有一组学生的信息,包括学生姓名、年龄和成绩,请使用树来存储这 些信息,并实现以下操作: 1. 添加学生信息到树中 2. 从树中查找指定学生的信息 3. 删除指定学生的信息 4. 获取树中所有学生的平均成绩 六、图应用题

图是一种用于描述事物之间关系的数据结构,在网络分析、路径规划等领域有广泛应用。假设有一张地图,其中包含若干城市和连接它们的道路,请使用图来存储地图信息,并实现以下操作: 1. 添加城市和道路到图中 2. 查找两个城市之间的最短路径 3. 删除某个城市及其相关的道路 4. 统计图中有多少个孤立的城市 七、哈希表应用题 哈希表是一种通过散列函数实现高效存储和查找的数据结构,在很多场景中都有广泛应用。假设有一组学生的信息,包括学生姓名、年龄和成绩,请使用哈希表来存储这些信息,并实现以下操作: 1. 添加学生信息到哈希表中 2. 从哈希表中查找指定学生的信息 3. 删除指定学生的信息 4. 统计哈希表中学生信息的个数 八、总结 以上是几个常见的数据结构应用题的练习,通过这些练习可以更深入地理解数据结构的应用和算法的设计。数据结构是计算机科学中非常重要的一个领域,其应用广泛且多样化。在实际问题中,合理选择

《数据结构》应用题参考习题

《数据结构》应用题参考习题数据结构是计算机科学中的一门基础课程,它主要研究数据的组织、存储和管理方式,以及不同数据结构对算法执行效率的影响。在实际 应用中,数据结构起到了至关重要的作用。本文将介绍一些《数据结构》的应用题,并给出相应的参考习题。 一、栈的应用题 1. 符号匹配问题 问题描述:给定一个字符串,在其中包含了一些圆括号"()"、方括号"[]"和花括号"{}",判断字符中的括号是否匹配。 例题:判断字符串"{[()]()}"是否匹配。 解题思路:利用栈的先进后出特点,遍历字符串中的每个字符。如 果是左括号,则入栈;如果是右括号,则判断栈顶元素是否与之匹配。 参考习题:编写一个程序,实现括号匹配的功能,并输出匹配结果。 二、队列的应用题 1. 循环队列的应用 问题描述:设计一个循环队列,实现入队、出队等基本操作。 解题思路:利用数组实现循环队列,需要设置一个队头指针front 和一个队尾指针rear。入队操作时,将元素添加到rear位置;出队操作时,返回front位置元素,并将front后移。

参考习题:实现一个循环队列,并进行相关操作的测试。 三、链表的应用题 1. 单链表反转 问题描述:给定一个单链表,将其反转。 例题:将链表1->2->3->4->5反转为5->4->3->2->1。 解题思路:利用三个指针prev、cur和next,依次遍历链表,并修 改指针指向实现链表的反转。 参考习题:编写一个程序,实现单链表反转,并输出反转后的链表。 四、树的应用题 1. 二叉树的遍历 问题描述:给定一个二叉树,实现它的前序遍历、中序遍历和后序 遍历。 解题思路:分别使用递归和迭代的方式实现二叉树的前序遍历、中 序遍历和后序遍历。 参考习题:编写一个程序,实现二叉树的前序遍历、中序遍历和后 序遍历,并输出遍历结果。 五、图的应用题 1. 图的最短路径

数据结构题库应用题上海杉达学院期末总复习题

《数据结构》――应用题复习概要 2020年7月 1.写出执行下列程序段时,语句S的执行次数。 2.for (i=1; i=i; j--) 4.S; 5.假设n为2的乘幂,并且n>2,试求下列算法的时间复杂度及变量count的值(以n的 函数形式表示) int Time(int n) { int count:=0; x:=2; while (xRL = P->RL; P->RL = Q; Q->RL->LL = Q; Q->LL = P; (2)Q->RL = P; P->LL->RL = Q; Q->LL = P->LL; P->LL = Q; (3)P->LL->RL = P->RL; P->RL->LL = P->LL; 7.设栈S的初始状态为空,元素a, b, c, d, e和f依次通过栈S,试分析下列各组出栈次序, 每组所用的最大容量。(1)a,b,c,d,e,f;(2)f,e,d,c,b,a;(3)b,d,c,f,e,a 8.有字符串A+B*C-D,试写出利用栈操作将该字符串序列改为ABC*+D-的操作步骤,这 里用X和S分别表示字符的进栈和出栈操作(例如把字符ABCD改为ACBD的操作步骤为XSXXSSXS)。 XSXXSXXSSSXXSS 9.一棵二叉树的结点数采用顺序存储结构,存于下列数组T中,画出该二叉树。

数据结构应用题练习

1、假设一棵二叉树的层序序列是ABCDEFGHIJ 和中序序列是DBGEHJACIF,请画出该树。 21、有一个完全二叉树按层次顺序存放在一维数组中,如下所示: 请指出结点P 的父结点,左子女,右子女。 3、给出下列二叉树的先序序列。 4、已知二叉树的先序遍历序列为ABCDEFGH ,中序遍历序列为CBEDFAGH ,画出二叉树。 答案:二叉树形态 A F H G D E C B (2)设一棵二叉树的先序序列: A B D F C E G H ,中序序列: B F D A G E H C ①画出这棵二叉树。 ②画出这棵二叉树的后序线索树。 ③将这棵二叉树转换成对应的树(或森林)。 A B F D ( C E H G

(1) (2) 1、已知一棵二叉树的前序序列为:A,B,D,G,J,E,H,C,F,I,K,L中序序列:D,J,G,B,E,H, A,C,K,I,L,F。 i.写出该二叉树的后序序列; ii.画出该二叉树; iii.求该二叉树的高度(假定空树的高度为-1)和度为2、度为1、及度为0的结点个数。 该二叉树的后序序列为:J,G,D,H,E,B,K,L,I,F,C,A。 该二叉树的形式如图所示: 该二叉树高度为:5。 度为2的结点的个数为:3。 度为1的结点的个数为:5。 度为0的结点个数为:4。 5、试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。 答案:

2 1 5 6 1118 73 4 12 30 WPL=12*1+(4+5+6)*3+(1+2)*4=12+45+12=69 6、已知权值集合为{5,7,2,3,6,9},要求给出哈夫曼树,并计算带权路径长度WPL 。 答案:(1)树形态: 3 2 5 5 1019 9 7 6 13 32 (2)带权 路 径 长 度 : WPL=(6+7+9)*2+5*3+(2+3)*4=44+15+20=79 (3) 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。 ① 试为这8个字母设计赫夫曼编码。 ② 试设计另一种由二进制表示的等长编码方案。 ③ 对于上述实例,比较两种方案的优缺点。 解:方案1;哈夫曼编码 先将概率放大100倍,以方便构造哈夫曼树。 w={7,19,2,6,32,3,21,10},按哈夫曼规则:【[(2,3),6], (7,10)】, ……19, 21, 32 (100) (40) (60) 19 21 32 (28) () (11) 7 10 6 (5)

数据结构题库-应用题(上海杉达学院期末总复习题)

《数据结构》――应用题复习概要 2022年4月1.写出执行下列程序段时,语句S的执行次数。 for (i=1; i=i; j--) S; 2.假设n为2的乘幂,并且n>2,试求下列算法的时间复杂度及变量count的值(以n的 函数形式表示) int Time(int n) { int count:=0; x:=2; while (xRL = P->RL; P->RL = Q; Q->RL->LL = Q; Q->LL = P; (2)Q->RL = P; P->LL->RL = Q; Q->LL = P->LL; P->LL = Q; (3)P->LL->RL = P->RL; P->RL->LL = P->LL; 4.设栈S的初始状态为空,元素a, b, c, d, e和f依次通过栈S,试分析下列各组出栈次序, 每组所用的最大容量。(1)a,b,c,d,e,f;(2)f,e,d,c,b,a;(3)b,d,c,f,e,a 5.有字符串A+B*C-D,试写出利用栈操作将该字符串序列改为ABC*+D-的操作步骤,这 里用X和S分别表示字符的进栈和出栈操作(例如把字符ABCD改为ACBD的操作步骤为XSXXSSXS)。 XSXXSXXSSSXXSS 6.一棵二叉树的结点数采用顺序存储结构,存于下列数组T中,画出该二叉树。

《数据结构》应用题参考习题

一.《树》应用题 1. 已知一棵树边的集合为{},请画出这棵树,并回答下列问题: (1)哪个是根结点? (2)哪些是叶子结点? (3)哪个是结点g的双亲? (4)哪些是结点g的祖先? (5)哪些是结点g的孩子? (6)哪些是结点e的孩子? (7)哪些是结点e的兄弟?哪些是结点f的兄弟? (8)结点b和n的层次号分别是什么? (9)树的深度是多少? (10)以结点c为根的子树深度是多少? 2. 一棵度为2的树与一棵二叉树有何区别。 3. 试分别画出具有3个结点的树和二叉树的所有不同形态? 4. 已知用一维数组存放的一棵完全二叉树:ABCDEFGHIJKL,写出该二叉树的先序、中序和后序遍历序列。

5. 一棵深度为H的满m叉树有如下性质:第H层上的结点都是叶子结点,其余各层上每个结点都有m棵非空子树,如果按层次自上至下,从左到右顺序从1开始对全部结点编号,回答下列问题: (1)各层的结点数目是多少? (2)编号为n的结点的父结点如果存在,编号是多少? (3)编号为n的结点的第i个孩子结点如果存在,编号是多少? (4)编号为n的结点有右兄弟的条件是什么?其右兄弟的编号是多少? 6. 找出所有满足下列条件的二叉树: (1)它们在先序遍历和中序遍历时,得到的遍历序列相同; (2)它们在后序遍历和中序遍历时,得到的遍历序列相同; (3)它们在先序遍历和后序遍历时,得到的遍历序列相同; 7. 假设一棵二叉树的先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请写出该二叉树的后序遍历序列。 8. 假设一棵二叉树的后序序列为DCEGBFHKJIA,中序序列为DCBGEAHFIJK,请写出该二叉树的后序遍历序列。 9. 给出如图1所示的森林的先根、后根遍历结点序列,然后画出该森林对应的二叉树。 10.给定一组权值(5,9,11,2,7,16),试设计相应的哈夫曼树。

数据结构 期末考试复习试卷二及答案

期末考试复习 试卷二 一、选择题(本题共20分,每题2分) 1.下面程序段的时间复杂度为()。 for(i=1;i<=n;i++) for(j=1;j<=n;j++) s++; A. O(n) B. O(n2) C. O(2*n) D. O(i*j) 2.线性表采用链式存储时,结点的存储地址()。 A.必须是不连续的B.部分地址必须是连续的 C.连续与否均可D.和头结点的存储地址相连续 3.若让元素1,2,3依次进栈,则出栈时的序列不可能出现的是()。 A.3,2,1 B.1,2,3 C.3,1,2 D.2,1,3 4.下面说法不正确的是( ) A.串S1=“this_is_a_string”的长度是16。 B.串S2=“this”是串S1的子串。 C.串S3=“thisis”在串S1中的位置是1。 D.串S4=“a”在串S1中的位置是9。 5.一个非空广义表的表头()。 A.不可能是子表B.只能是子表 C.只能是原子D.可以是子表或原子 6.完全二叉树( )满二叉树 A.不一定是 B.一定不是 C.一定是 D.不能确定关系 7. 用链表表示线性表的优点是() A.便于随机存取 B.便于插入和删除操作 C.花费的存储空间较顺序存储少 D.元素的物理顺序与逻辑顺序相同 8.在一个具有n个顶点的无向图中,要连通全部顶点至少需要多少条边( )。 A.n(n-1)/2 B.n-1 C.n D.n+1 9.下列查找方法中哪一种不适合元素的链式存储结构( ) A.顺序查找 B.分块查找 C.二分查找 D.散列查找10.下面哪种排序方法稳定性最好( )。 A.希尔排序 B.冒泡排序 C.快速排序 D.堆排序二、填空题(本题共20分) 1.数据的逻辑结构可以分为两大类:_________和________。 2. 在二叉树的第i层上最多有___________个结点。 3. 无向图中恰好有__________条边,才称为无向完全图。

数据结构期末复习题(有答案)

一、单选题 1. 从物理上可以把数据结构分为(B)两大类。 A. 动态结构、静态结构 B. 顺序结构、链式结构 C. 线性结构、非线性结构 D. 初等结构、构造型结构 2. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(C )(1≤i≤n+1)。 A. O(0) B. O(1) C. O(n) D. O(n2) 3. 链表不具有的特点是(B)。 A. 插入、删除不需要移动元素 B. 可随机访问任一元素 C. 不必事先估计存储空间 D. 所需空间与线性长度成正比 4. 下列排序算法中(C)排序在一趟结束后不一定能选出一个元素放在其最终位置上。 A. 选择 B. 起泡 C. 归并 D. 堆 5. 在下列排序算法中,哪一个算法的时间复杂度与初始排序无关(D )。 A. 插入排序 B. 起泡排序 C. 快速排序 D. 选择排序 6. 一个栈的输入序列为1,2,3,…,n,若输出序列的第一个元素是i,则第j个输出元素是(D)。 A. i-j-1 B. i-j C. j-i+1 D. 不确定 7. 输入序列为ABC,可以变为BCA时,经过的栈操作为(D )。 A. push,pop,push,pop,push,pop B. push,push,push,pop,pop,pop C. push,push,pop,pop,push,pop D. push,push,pop,push,pop,pop 8. 有六个元素6 5 4 3 2 1 的顺序进栈,下列(C )不是合法的出栈序列。 A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6 9. 串的长度是指(B )。 A. 串中所含不同字母的个数 B. 串中所含字符的个数 C. 串中所含不同字符的个数 D. 串中所含非空格字符的个数 10. 设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( A)。 A.(i-1)*n+j B.(i-1)*n+j-1 C. i*(j-1) D. j*m+i-1 11. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B )。 A. 9 B. 11 C.15 D. 不确定 12. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历是(D )。 A. acbed B. decab C. deabc D. cedba 13. 下面几个符号串编码集合中,不是前缀编码的是(B)。 A. {0,10,110,1111} B. {11,10,001,101,0001} C. {00,010,0110,1000} D. {b,c,aa,ac,aba,abb,abc} 14. 一个n个顶点的连通无向图,其边的个数至少为(A )。 A. n-1 B. n C. n+1 D. nlogn; 15. 在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是(D )。 A. G中有弧 B. G中有一条从Vi到Vj的路径 C. G中没有弧 D. G中有一条从Vj到Vi的路径 16. 在图采用邻接表存储时,求最小生成树的Prim 算法的时间复杂度为(C )。 A. O(n) B. O(n+e) C. O(n2) D. O(n3) 17. 下面关于二分查找的叙述正确的是(D )。

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

《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 单项选择题1、C 2、D 3、A 4、D 5、C 6、D 7、A 8、B 9、C 10、C 一、 1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为( c)。 (A)、正确性(B). 可行性(C). 健壮性(D). 输入性 2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为(d )。 for(i=n-1;i>=0;i--) for(j=0;jnext; p->next= Q.front->next; (B)、p=Q.front->next; Q.front->next=p->next; (C)、p=Q.rear->next; p->next= Q.rear->next; (D)、p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于( c ) (A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和

数据结构期末复习题(1)

数据结构习题1 一、选择题 1、程序段如下: sum=0; for(i=1;i<=n;i++) for(j=n;j>=1;j--) sum++; 其中n为正整数,则最后一行的语句频度在最坏情况下是()。 A、O(n) B、O(nlog2n) C、O(n3) D、O(n2) 2、二维数组A[8][8]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087, A[4][5]的存储地址为1159,则数组元素A[6][7]的存储地址为()。 A、1223 B、1227 C、1231 D、1235 3、已知栈的最大容量为4。若进栈序列为1,2,3,4,5,6,且进栈和出栈可 以穿插进行,则不会出现的出栈序列为()。 A、4,3,2,1,5,6 B、3,2,1,6,4,5 C、4,3,2,1,6,5 D、3,2,1,6,5,4 4、已知广义表C=(a,(b,c),d),则:head( tail(tail(C)))为( ) A、d B、c C、b D、a 5、已知一棵完全二叉树有256个叶子结点,则该树可能达到的最大深度为()。A.10B.11 C.8D.9

6、已知森林F={T1,T2,T3,T4,T5,T6},各棵树T i(i=1,2,3,4,5,6)中所含结点的个数分别为18,2,3,4,5,6, 将F按照左孩子右兄弟转化为二叉树,则与F对应的二叉树的右子树的结点个数为()。 A.19 B.20 C.17 D.18 7、对下图所示的无向图,从顶点1开始进行深度优先遍历,可得到顶点访问序列()。 A. 1 2 4 5 6 3 7 B.1 2 4 3 5 6 7 C. 1 2 4 3 5 7 6 D.1 2 3 4 5 7 6 8. 下列关键字序列中,()是堆。 A. 16, 72, 31, 23, 94, 53 B. 94, 23, 31, 72, 16, 53 C. 16, 53, 23, 94, 31, 72 D. 16, 23, 53, 31, 94, 72 9、对记录序列(314,508,298,123,486,145)依次按个位进行一趟基数排序之 后所得的结果为( )。 A、298,123,508,486, 145,314 B、508,314,123,145,486,298 C、 123,314,145,486,298,508 D、123,314,145,486,508,298

数据结构期末复习题2

复习题2 一、选择题 1. 下述程序段中语句①的频度是()。 s=0; for(i=1; inext=p->next;p->next=s;p->next->prior=s;s->prior=p; B. p->next=s;s->next=p->next;p->next->prior=s;s->prior=p; C. s->next=p->next;s->prior=p; p->next->prior=s;p->next=s; D. p->next->prior=s;p->next=s;s->next=p->next;s->prior=p; 3. 设栈的初始状态为空,元素1、2、3、4、5、6依次入栈,得 到的出栈序列是(2, 4, 3, 6, 5, 1),则栈的容量至少是()。 A.2 B.3 C.4 D.6 4. 已知二维数组A[6][10],每个数组元素占4个存储单元,若按行优先顺序存放数组元素a[3][5]的存储地址是1000,假设a[0][0]是该数组的首元素,则a[0][0]的存储地址是()。

A.860 B.864 C.868 D.872 5. 一棵完全二叉树中有128个叶子节点,则该树最少有()个 结点。 A.255 B.254 C.253 D.256 6.已知二叉树的前序遍历序列是abdgcefh,中序遍历序列是dgbaechf,它的后序遍历序列是()。 A.bdgcefha B. gdbehfca C.bdgechfa D.gdbecfha 7. 对下图进行拓扑排序,正确的拓扑序列是()。 A.v1,v2,v3,v4,v5,v6,v7 B.v1,v2,v4,v3,v6,v5,v7 C.v1,v2,v4,v3,v5,v7,v6 D.v1,v2,v3,v4,v5,v6,v7 8、对记录序列(314,298,508,123,486,145)依次按个位和十位进行两趟基数排序之后所得结果为_________。 A.314,298,508,123,486,145 B.123,314,145,486,298,508 C.123,145,298,314,486,586 D.508,314,123,145,486,298 9. 下列二叉树中,不.平衡的二叉树是()。

数据结构期末考试试题和标准答案及评分标准

数据结构期末考试试题和标准答案及评分标准 《数据结构》试题(A卷) (考试时间: 90分钟) 一、单项选择题(本大题共15小题,每小题2分,共30分) (每题只有一个选项是正确的,将答案填写在括号内,错选、多选不得分) 1.()是组成数据的基本单位,是一个数据整体中相对独立的单元。 A.数据 B.数据元素 C.数据对象 D.数据结构 2.算法计算量的大小称为算法的()。 A.效率 B.复杂度 C.数据元素之间的关系??? ? D.数据的存储方法 3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入或删 除运算,则采用以下()方式最节省时间。 A.链式存储 B. 索引存储 C.顺序存储 D.散列存储 4.下述哪一条是顺序存储结构的优点?() A.存储密度大? B.插入运算方便? C.删除运算方便? D.可方便地用于各种逻辑结构的存储表示 5.在一个单链表中,若删除p所指结点的后续结点,则执行()。 >next=p->next->next >next=p->next =p->next;p->next=p->next->next =p->next->next

6.带头结点的单链表head为空的判定条件是()。 ==NULL >next==NULL >next==head !==NULL 7.非空的循环单链表head的尾结点(由p所指向)满足()。 >head==NULL ==NULL >next==head ==head 8.下面关于线性表的叙述中,错误的是哪一个?() A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链式存储,不必占用一片连续的存储单元。 D.线性表采用链式存储,便于插入和删除操作。 9.队列操作的原则是()。 A.后进先出 B.先进先出 C.只能进行插入 D.只能进行删除 10.栈中允许进行插入和删除的一端称为()。 A.栈首 B.栈尾 C.栈顶 D.栈底 11.假设以数组A[n]存放循环队列的元素,其首尾指针分别为front和rear, 则当前队列中的元素个数为()。 A.(rear-front+n)%n B. rear-front+1 C. (front-rear+n)%n D.(rear-front)%n 12.最大容量为n的循环队列,队尾指针是rear,队首指针是front,则队空的判 断条件是()。 A.(rear+1)%n==front ==front +1==front D.(rear-1)%n==front

2022年上海杉达学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年上海杉达学院计算机科学与技术专业《数据结构与算法》科目 期末试卷A(有答案) 一、选择题 1、无向图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 2、若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的 排序方法是()。 A.快速排序 B.堆排序 C.归并排序 D.直接插入排序 3、连续存储设计时,存储单元的地址()。 A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续 4、在用邻接表表示图时,拓扑排序算法时间复杂度为()。 A.O(n) B.O(n+e) C.O(n*n) D.O(n*n*n) 5、向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。 A.h->next=s B.s->next=h C.s->next=h;h->next=s D.s->next=h-next;h->next=s 6、循环队列放在一维数组A中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空, 下列判断队空和队满的条件中,正确的是()。 A.队空:end1==end2;队满:end1==(end2+1)mod M B.队空:end1==end2;队满:end2==(end1+1)mod (M-1) C.队空:end2==(end1+1)mod M;队满:end1==(end2+1) mod M

2022年上海杉达学院计算机科学与技术专业《数据库原理》科目期末试卷A(有答案)

2022年上海杉达学院计算机科学与技术专业《数据库原理》科目期末 试卷A(有答案) 一、填空题 1、在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:保持原有 的依赖关系和______。 2、关系代数运算中,基本的运算是______________、______________、______________、 ______________和______________。 3、在设计局部E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计 人员设计,所以各个局部E-R图之间难免有不一致的地方,称为冲突。这些冲突主要有 ______、______和______3类。 4、在SQL Server 2000中,数据页的大小是8KB。某数据库表有1000行数据,每行需 要5000字节空间,则此数据库表需要占用的数据页数为_____页。 5、SQL Server中数据完整性包括______、______和______。 6、采用关系模型的逻辑结构设计的任务是将E-R图转换成一组______,并进行______处理。 7、对于非规范化的模式,经过转变为1NF,______,将1NF经过转变为2NF,______, 将2NF经过转变为3NF______。 8、关系规范化的目的是______。 9、使某个事务永远处于等待状态,得不到执行的现象称为______。有两个或两个以上的 事务处于等待状态,每个事务都在等待其中另一个事务解除封锁,它才能继续下去,结果 任何一个事务都无法执行,这种现象称为______。 10、设某数据库中有作者表(作者号,城市)和出版商表(出版商号,城市),请补全如下查询语句,使该查询语句能查询作者和出版商所在的全部不重复的城市。SELECT城市FROM作者表_____ SELECT城市FROM出版商表;

数据结构题库

2013-2014学年二学期数据结构期末考试模拟试卷(1~6卷) 一、应用题(3小题,共24分) 1.已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。【解答】以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。其带权路径长度=2×5+1×5+3×4+5×3+9×2+4×3+4×3+7×2=98,所以,该字符串的编码长度至少为98位。 2.已知关键码序列为(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec),散列表的地址空间为0~16,设散列函数为H(x)=[ i/2 」(取下整数) ,其中i为关键码中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。 【解答】H(Jan)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0 H(May)=13/2=6, H(Jun)=10/25, H(Jul)=10/25, H(Aug)=1/2=0 H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2 采用链地址法处理冲突,得到的开散列表如下: 平均查找长度=(1×7+2×4+3×1)/12=18/12

3.分析下面各程序段的时间复杂度 (1)s1(int n) { int p=1,s=0; for (i=1;i<=n;i++) { p*=i;s+=p; } return(s); } ——O(n) (2)s2(int n) x=0;y=0; For (k=1;k<=n;k++) x++; For (i=1;i<=n;i++) For (j=1;j<=n;j++) y++; ——O(n2) 1.下述算法的功能是什么? (1)(1)返回结点*p的直接前趋结点地址。 (2)交换结点*p和结点*q(p和q的值不变)。 1.对给定的一组权值W=(5,2,9,11,8,3,7),试构造相应的哈夫曼树,并计算它的带权路径长度。【解答】构造的哈夫曼树如图所示。 W PL=2×4+3×4+5×3+7×3+8×3+9×2+11×2=120

数据结构题库-程序填空(上海杉达学院期末总复习题)

数据结构题库-程序填空(上海杉达学院期末总复习题) 《数据结构》――程序填空 2018年9月 1.一个带头结点的单链表如下: head为头指针,每个结点按data字段值递增顺序链接,r指向一个新结点,下面是将r所指的新结点插入链表中的算法,插入后结点仍按data字段值递增顺序链接。 typedef struct node { int data; struct node *link; } node, *ptr; void insert (ptr &head, ptr r) { pred = head; q = head->link; while ( ( q) && (q->data <= r->data)) { pred = q; q=q->link; } r->link = q; pre->link = r; } 2.求单链表的长度 typedef struct lnode { elemtp data; struct lnode * next; } lnode, * linkisttp; int length (linkisttp L) { p = L->next; len = 0;

while (p) { len ++; p = p->next; } return len; } 3.假设head1指向带有头结点的单链表,现将该单链表复制一个。 typedef struct lnode { elemtp data; struct lnode * next; } lnode, * linkisttp; void copy (pointer head1, & head2) { head2 = (pointer) malloc (sizeof (pnode)); // 建立一个头结点q = head2; p = head1; while (p!=NULL) // 复制一个新结点 { s = (pointer) malloc (sizeof (pnode)); s->data = p->data; q->next = s; p = p->next; q = q->next; } q->next = NULL;// 置最后一个结点的next域 } 4.把两个递增的单链表LA,LB合并成一个递减的单链表LC。题中链表都不带表头结点。 #include struct nodetype {int data; struct nodetype *link;} node; struct nodetype *la, *lb, *lc; void merge ( )

数据结构复习题库

数据结构复习题库 一、填空题(24分,每空1分) 1.1绪论 1、数据是指输入到计算机中并能被计算机程序处理的符号的总称。 2、数据对象是具有相同性质的数据元素的集合,它是数据的子集。 3、数据结构:带结构的数据元素的集合;是指数据以及相互之间的联系,主要 描述数据及其关系在计算机内如何表示、存取和处理。 4、数据的逻辑结构是指数据元素之间逻辑关系的整体,它与数据的存储结构无 关,是独立于计算机的。数据的存储结构是逻辑结构用计算机语言的实现(亦称为映象),它是依赖于计算机语言的。 5、数据结构在计算机意义下,包含三个方面的内容:(1)数据元素之间的逻辑 关系;是指数据及其相互之间的关系,它是根据人们解决实际问题的需要和问题本身所含数据之间的内在联系而抽象出来的;(2)数据的存储方式;(3)施加在数据上的运算。 6、数据的逻辑结构可归结为以下四类: 线性结构、树形结构、图状结构、集合 结构 7、数据的存储方式可归结为以下四类: 1)顺序存储2)链接存储3)索引存储4) 散列存储。 8、抽象数据类型(Abstract Data Type 简称ADT):是指一个数学模型以及定义在 此数学模型上的一组操作。抽象数据类型可以定义一个完整的数据结构。9、数据结构是指数据及其相互之间的____联系____。当结点之间存在M对N (M:N)的联系时,称这种结构为图(或图结构)。 10、算法的五个重要特性是指(1)有穷性、(2)确定性:(3)可行性、(4)输入、(5)输

出;其中有穷性是指:执行有限步后能够在有限时间内(合理)结束;确定性是指:每一步都应确切地、无二义性地定义;(3)可行性:每条指令可以执行且有正确的结果。 11、评价一个算法的好坏主要依据:1正确性2、可读性3、健壮性4、高效率 与低存储量需求。 12、算法效率的衡量方法有:事后统计法和事前分析估算法;事前估算法主要考 虑:(1)算法选用的策略、(2)、问题的规模。 13、算法时间复杂度是算法中基本运算重复执行次数多少的量度。记作O(n), 空间复杂度作为实现算法所需的辅助存储空间的大小,记作S(n)=O(f(n))。 1.2线性表 1、线性表是具有相同特性的数据元素的一个有限序列。其特征有三:所有元素 类型相同、线性表是由有限个数据元素组织、线性表中的数据元素与位置有关的,这一点表明线性表不同于集合,线性表中的每一个元素都有一个对应的序号,线性表中元素可以重复出现。 2、线性结构特点:有“头”元素有“尾”元素,中间的元素有“前驱”元素和 “后继”元素。 3、线性表的顺序表示是指:用一组地址连续的存储单元依次存放线性表中的数 据元素。 4、对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为O (1),在表尾插入元素的时间复杂度为O(n)。 5、在下面的数组a中链接存储着一个线性表,表头指针为a[o].next,则该线性 表为____(38,56,25,60,42,74)。 a 0 1 2 3 4 5 6 7 8 data next

相关主题
相关文档
最新文档