文档库 最新最全的文档下载
当前位置:文档库 › 数据结构试题及答案

数据结构试题及答案

数据结构试题及答案
数据结构试题及答案

一、判断题:

1、线性表的逻辑顺序与物理顺序总是一致的。( )

2、线性表的顺序存储表示优于链式存储表示。( )

3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。( )

4、二维数组是其数组元素为线性表的线性表。( )

5、每种数据结构都应具备三种基本运算:插入、删除和搜索。( )

6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个

方面。( )

7、线性表中的每个结点最多只有一个前驱和一个后继。()

8、线性的数据结构可以顺序存储,也可以链接存储。非线性的数据结构只能链接存储。()

9、栈和队列逻辑上都是线性表。()

10、单链表从任何一个结点出发,都能访问到所有结点()

11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。()

12、快速排序是排序算法中最快的一种。()

13、多维数组是向量的推广。()

14、一般树和二叉树的结点数目都可以为0。()

15、直接选择排序是一种不稳定的排序方法。()

16、98、对一个堆按层次遍历,不一定能得到一个有序序列。()

17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。()

18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。()

19、堆栈在数据中的存储原则是先进先出。()

20、队列在数据中的存储原则是后进先出。()

21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。()

22、哈夫曼树一定是满二叉树。()

23、程序是用计算机语言表述的算法。()

24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。()

25、用一组地址连续的存储单元存放的元素一定构成线性表。()

26、堆栈、队列和数组的逻辑结构都是线性表结构。()

27、给定一组权值,可以唯一构造出一棵哈夫曼树。()

28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。()

29、希尔排序在较率上较直接接入排序有较大的改进。但是不稳定的。()

30、在平均情况下,快速排序法最快,堆积排序法最节省空间。()

31、快速排序法是一种稳定性排序法。()

32、算法一定要有输入和输出。()

33、算法分析的目的旨在分析算法的效率以求改进算法。()

34、非空线性表中任意一个数据元素都有且仅有一个直接后继元素。()

35、数据的存储结构不仅有顺序存储结构和链式存储结构,还有索引结构与散列结构。()

36、若频繁地对线性表进行插入和删除操作,该线性表采用顺序存储结构更合适。()

37、若线性表采用顺序存储结构,每个数据元素占用4个存储单元,第12个数据元素的存储地址为144,则第1个数据元素的存储地址是101。()

38、若长度为n的线性表采用顺序存储结构,删除表的第i个元素之前需要移动表中n-i+1个元素。()

39、符号p->next出现在表达式中表示p所指的那个结点的内容。()

40、要将指针p移到它所指的结点的下一个结点是执行语句p←p->next。()

41、若某堆栈的输入序列为1,2,3,4,则4,3,1,2不可能是堆栈的输出序列之一。()

42、线性链表中各个链结点之间的地址不一定要连续。()

43、程序就是算法,但算法不一定是程序。()

44、线性表只能采用顺序存储结构或者链式存储结构。()

45、线性表的链式存储结构是通过指针来间接反映数据元素之间逻辑关系的。()

46、除插入和删除操作外,数组的主要操作还有存取、修改、检索和排序等。()

47、稀疏矩阵中0元素的分布有规律,因此可以采用三元组方法进行压缩存储。()

48、不管堆栈采用何种存储结构,只要堆栈不空,可以任意删除一个元素。()

49、确定串T在串S中首次出现的位置的操作称为串的模式匹配。()

50、深度为h的非空二叉树的第i层最多有2i-1 个结点。()

51、满二叉树也是完全二叉树。()

52、已知一棵二叉树的前序序列和后序序列可以唯一地构造出该二叉树。()

53、非空二叉排序树的任意一棵子树也是二叉排序树。()

54、对一棵二叉排序树进行前序遍历一定可以得到一个按值有序的序列。()

55、一个广义表的深度是指该广义表展开后所含括号的层数。()

56、散列表的查找效率主要取决于所选择的散列函数与处理冲突的方法。()

57、序列初始为逆序时,冒泡排序法所进行的元素之间的比较次数最多。()

58、已知指针P指向键表L中的某结点,执行语句P=P-〉next不会删除该链表中的结点。

()

59、在链队列中,即使不设置尾指针也能进行入队操作。()

60、如果一个串中的所有字符均在另一串中出现,则说前者是后者的子串。()

61、设与一棵树T所对应的二叉树为BT,则与T中的叶子结点所对应的BT中的结点也一定是叶子结点。()

62、若图G的最小生成树不唯一,则G的边数一定多于n-1,并且权值最小的边有多条(其中n为G 的顶点数)。()

63、给出不同的输入序列建造二叉排序树,一定得到不同的二叉排序树。()

64、由于希尔排序的最后一趟与直接插入排序过程相同,因此前者一定比后者花费的时间多。()

65、程序越短,程序运行的时间就越少。()

66、采用循环链表作为存储结构的队列就是循环队列。()

67、堆栈是一种插入和删除操作在表的一端进行的线性表。()

68、一个任意串是其自身的子串。()

69、哈夫曼树一定是完全二叉树。()

70、带权连通图中某一顶点到图中另一定点的最短路径不一定唯一。()

71、折半查找方法可以用于按值有序的线性链表的查找。()

72、稀疏矩阵压缩存储后,必会失效掉随机存取功能。()

73、由一棵二叉树的前序序列和后序序列可以唯一确定它。()

74、在n个结点的元向图中,若边数在于n-1,则该图必是连通图。()

75、在完全二叉树中,若某结点元左孩子,则它必是叶结点。()

76、若一个有向图的邻接矩阵中,对角线以下元素均为0,则该图的拓扑有序序列必定存在。()

77、树的带权路径长度最小的二叉树中必定没有度为1的结点。()

78、二叉树可以用0≤度≤2的有序树来表示。()

79、一组权值,可以唯一构造出一棵哈夫曼树。( )

80、101,88,46,70,34,39,45,58,66,10)是堆;()

81、将一棵树转换成二叉树后,根结点没有左子树;()

82、用树的前序遍历和中序遍历可以导出树的后序遍历;()

83、在非空线性链表中由p所指的结点后面插入一个由q所指的结点的过程是依次执行语句:q->next=p->next;p->next=q。()

84、非空双向循环链表中由q所指的结点后面插入一个由p指的结点的动作依次为:p->prior=q, p->next=q->next,q->next=p,q->prior->next←p。()

85、删除非空链式存储结构的堆栈(设栈顶指针为top)的一个元素的过程是依次执行:p=top,top= p->next,free (p)。( )

86、哈希的查找无需进行关键字的比较。()

87、一个好的哈希函数应使函数值均匀的分布在存储空间的有效地址范围内,以尽可能减少冲突。()

88、排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。()

89、队列是一种可以在表头和表尾都能进行插入和删除操作的线性表。()

90、在索引顺序表上实现分块查找,在等概率查找情况下,其平均查找长度不与表的个数有关,而与每一块中的元素个数有关。()

91、对于有向图,顶点的度分为入度和出度,入度是以该顶点为终点的入边数目;出度是以该顶点为起点的出边数目,该顶点的度等于其入度和出度之和。()

92、无向图的邻接矩阵是对称的有向图的邻接矩阵是不对称的。()

93、具有n个顶点的连通图的生成树具有n-1条边()

二、填空题:

1、《数据结构》课程讨论的主要内容是数据的逻辑结构、存储结构和______________。

2、数据结构算法中,通常用时间复杂度和__________________两种方法衡量其效率。

3、一个算法一该具有______,______,____,______和____这五种特性。

4、若频繁地对线性表进行插入与删除操作,该线性表应采用____________存储结构。

5、在非空线性表中除第一个元素外,集合中每个数据元素只有一个_______;除最后一个元素之外,集合中每个数据元素均只有一个_________。

6、线性表中的每个结点最多有________前驱和____________后继。

7、______链表从任何一个结点出发,都能访问到所有结点。

8、链式存储结构中的结点包含____________域,_______________域。

9、在双向链表中,每个结点含有两个指针域,一个指向______结点,另一个指向________结点。

10、某带头结点的单链表的头指针head,判定该单链表非空的条件______________。

11、在双向链表中,每个结点含有两个指针域,一个指向_______结点,另一个指向_____结点。

12、已知指针p指向单链表中某个结点,则语句p->next=p->next->next的作用__删除p 的后继结点_。

13、已知在结点个数大于1的单链表中,指针p指向某个结点,则下列程序段结束时,指针q指向*p的_____________结点。

q=p;

while(q->next!=p)

q=q->next;

14、若要在单链表结点*P后插入一结点*S,执行的语句_______________。

15、线性表的链式存储结构地址空间可以_________,而向量存储必须是地址空间___________。

16、栈结构允许进行删除操作的一端为_____________。

17、在栈的顺序实现中,栈顶指针top,栈为空条件______________。

18、对于单链表形式的队列,其空队列的F指针和R指针都等于__________________。

19、若数组s[0..n-1]为两个栈s1和s2的共用存储空间,仅当s[0..n-1]全满时,各栈才不能进行栈操

作,则为这两个栈分配空间的最佳方案是:s1和s2的栈顶指针的初值分别为_________。

20、允许在线性表的一端插入,另一端进行删除操作的线性表称为_______。插入的一端为______,删除的一端为______。

21、设数组A[m]为循环队列Q的存储空间,font为头指针,rear为尾指针,判定Q为空队列的条件

____________________。

22、对于顺序存储的队列,存储空间大小为n,头指针为F,尾指针为R。若在逻辑上看一个环,则

队列中元素的个数为___________。

23、已知循环队列的存储空间为数组data[21],且头指针和尾指针分别为8和3,则该队列的当前长

度__________。

24、一个串的任意个连续的字符组成的子序列称为该串的________,包含该子串的串称为________。

25、求串T在主串S中首次出现的位置的操作是________________。

26、在初始为空的队列中插入元素A,B,C,D以后,紧接着作了两次删除操作,此时的队尾元素是

__________。

27、在长度为n的循环队列中,删除其节点为x的时间复杂度为_______________。

28、已知广义表L为空,其深度为___________。

29、已知一顺序存储的线性表,每个结点占用k个单元,若第一个结点的地址为DA1,则第i个结

点的地址为______________。

30、设一行优先顺序存储的数组A[5][6],A[0][0]的地址为1100,且每个元素占2个存储单元,则

A[2][3]的地址为_____________。

31、设有二维数组A[9][19],其每个元素占两个字节,第一个元素的存储地址为100,若按行优先顺

序存储,则元素A[6,6]的存储地址为______________,按列优顺序存储,元素A[6,6]的存储地址为

______________。

32、在进行直接插入排序时, 其数据比较次数与数据的初始排列________关;而在进行直接选择排序时,其数据比较次数与数据的初始排列__________关。

33、假设以行为优先存储的三维数组A[5][6][7],A[0][0][0]的地址为1100,每个元素占两个存储单

元,则A[4][3][2]的地址为_______。

34、设二维数组A[m][n]按列优先存储,每个元素占1个存储单元,元素A00的存储地址loc(A00),

则A ij的存储地址loc(A ij)=____________________。

35、稀疏矩阵一般采用__________方法进行压缩存储。

36、稀疏矩阵可用_________进行压缩存储,存储时需存储非零元的________、________、________。

37、若矩阵中所有非零元素都集中在以主对角线为中心的带状区域中,区域外的值全为0,则称为__________。

38、若一个n 阶矩阵A中的元素满足:A ij=A ji (0<=I ,j<=n-1)则称A为____________矩阵;若主对角线上方(或下方)的所有元素均为零时,称该矩阵为______________。

39、对于上三角形和下三角形矩阵,分别以按行存储和按列存储原则进行压缩存储到数组M[k]中,

若矩阵中非0元素为A ij,则k对应为________和__________。

40、设有一上三角形矩阵A[5][5]按行压缩存储到数组B中,B[0]的地址为100,每个元素占2个单

元,则A[3][2]地址为____________。

41、广义表(A,(a,b),d,e,((i,j),k)),则广义表的长度为___________,深度为___________。

42、已知广义表A=((a,b,c),(d,e,f)),则运算head(head (tail(A))))=___ ________。

43、已知广义表ls =(a,(b,c,d),e),运用head和tail函数取出ls中的原子b的运算是_____。

44、在树结构里,有且仅有一个结点没有前驱,称为根。非根结点有且仅有一个___________,且存在一条从根到该结点的_______________。

45、度数为0的结点,即没有子树的结点叫作__________结点或_________结点。同一个结点的儿子结点之间互称为___________结点。

46、假定一棵树的广义表为A(B(e),C(F(h,i,j),g),D),则该树的度为___________,树的深度为_________,终端结点为______,单分支结点为,双分支结点个数为_______,三分支结点为_______,C结点的双亲结点是______,孩子结点是______。

48、完全二叉树、满二叉树、线索二叉树和二叉排序树这四个名词术语中,与数据的存储结构有关

系的是_____________。

47、有三个结点的二叉树,最多有________种形状。

48、每一趟排序时从排好序的元素中挑出一个值最小的元素与这些未排小序的元素的第一个元素交

换位置,这种排序方法成为_____________排序法。

49、高度为k的二叉树具有的结点数目,最少为_____,最多为_____。

50、对任何一棵二叉树,若n0,n1,n2分别是度为0,1,2的结点的个数,则n0=_______。

51、在含100个结点的完全二叉树,叶子结点的个数为_______。

52、将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列叫_____。

53、若一棵满二叉树含有121个结点,则该树的深度为_________。

54、一个具有767个结点的完全二叉树,其叶子结点个数为________。

55、深度为90的满二叉树,第11层有________个结点。

56、有100个结点的完全二叉树,深度为________。

57、设一棵二叉树中度为2的结点10个,则该树的叶子个数为________。

58、若待散列的序列为(18,25,63,50,42,32,9),散列函数为H(key)=key MOD 9,与18发生冲突的元素

有_____________个。

59、含有3个2度结点和4个叶结点的二叉树可含__________个1度结点。

60、一棵具有5层满二叉树中节点总数为___________。

61、一棵含有16个结点的完全二叉树,对他按层编号,对于编号为7的结点,他的双亲结点及左右

结点编号为______、______、_______。

62、深度为k(设根的层数为1)的完全二叉树至少有_______个结点, 至多有_______个结点。 63、若要对某二叉排序树进行遍历,保证输出所有结点的值序列按增序排列,应对该二叉排序树采用________遍历法。

64、在序列(2,5,8,11,15,16,22,24,27,35,50)中采用折半查找(二分查找)方法查找元素24,需要进行______________次元素之间的比较。

65、设有10个值,构成哈夫曼树,则该哈夫曼树共有______个结点。

66、从树中一个结点到另一个结点之间的分支构成这两个结点之间的____________。

67、关键字自身作为哈希函数,即H (k )=k ,也可自身加上一个常数作为哈希函数,即H(k)=k+C 这种构造哈希函数的方式叫____________。

68、对于一个图G ,若边集合E (G )为无向边的集合,则称该图为____________。 69、对于一个图G ,若边集合E (G )为有向边的集合,则称该图为____________。

70、对于有向图,顶点的度分为入度和出度,以该顶点为终点的边数目叫________;以该顶点为起点的边数目叫_________。

71、一个无向图采用邻接矩阵存储方法,其邻接矩阵一定是一个______________。 72、有一个n 个顶点的有向完全图的弧数_____________。

73、在无向图中,若从顶点A 到顶点B 存在_________,则称A 与B 之间是连通的。 74、在一个无向图中,所有顶点的度数之和等于所有边数的___________倍。

75、一个连通图的生成树是该图的____________连通子图。若这个连通图有n 个顶点, 则它的生成树有__________条边。

76、无向图的邻接矩阵是一个_____________矩阵。

77、如果从一无向图的任意顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是_____ _______。

78、若采用邻接表的存储结构,则图的广度优先搜索类似于二叉树的____________遍历。 79、若图的邻接矩阵是对称矩阵,则该图一定是________________。

80、从如图所示的临接矩阵可以看出,该图共有______个顶点。如果是有向图,该图共有______条弧;如果是无向图,则共有________条边。 81、如果从一个顶点出发又回到该顶点,则此路径叫做___________。

82、一个具有个n 顶点的无向图中,要连通全部顶点至少需要________条边。 83、给定序列{100, 86, 48, 73, 35, 39, 42, 57, 66, 21}, 按堆结构的定义, 则它一定_________堆。

84、从未排序序列中选择一个元素,该元素将当前参加排序的那些元素分成前后两个部分,前一部分中所有元素都小于等于所选元素,后一部分中所有元素都大于或等于所选元素,而此时所选元素处在排序的最终位置。这种排序法称为_____________排序法。

85、折半搜索只适合用于___________________。

86、结点关键字转换为该结点存储单元地址的函数H 称为_____________或叫__________。

A B C

C

B A B ??????????=010100110

87、在索引查找中,首先查找________,然后查找相应的_________,整个索引查找的平均查找长度等于查找索引表的平均长度与查找相应子表的平均查找长度的_______。

三、选择题:

()1.数据结构通常是研究数据的及它们之间的联系。

A存储和逻辑结构B存储和抽象

C理想和抽象D理想与逻辑

()2.在堆栈中存取数据的原则是。

A先进先出B后进先出

C先进后出D随意进出

()3.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子的编号为______。

A.98

B.99

C.50

D.48

( )4.对于如图所示二叉树采用中根遍历,正确的遍历序列应为( )

A.ABCDEF

B.ABECDF

C.CDFBEA

D.CBDAEF

()5.设有100个元素,用折半查找法进行查找时,最大比较次数是_____ 。

A.25

B.50

C.10

D.7

()6.快速排序在_____情况下最易发挥其长处。

A.被排序数据中含有多个相同排序码

B.被排序数据已基本有序

C.被排序数据完全无序

D.被排序数据中最大值和最小值相差悬殊

()7.由两个栈共享一个向量空间的好处是______。

A减少存取时间,降低下溢发生的机率B节省存储空间,降低上溢发生的机率

C减少存取时间,降低上溢发生的机率D节省存储空间,降低下溢发生的机率

()8.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树A空或者只有一个结点B高度等于其结点数

C任一结点无左孩子D任一结点无右孩子

()9.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4; r(38)=5; r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是________。

A8 B3

C5 D9

()10.在含有n个项点有e条边的无向图的邻接矩阵中,零元素的个数为________。

A.e

B.2e

C.n2-e

D.n2-2e

()11.图的深度优先遍历类似于二叉树的_______。

A.先序遍历

B.中序遍历

C.后序遍历

D.层次遍历

()12.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______。

A. O(1)

B. O(log2n)

C. O(n)

D. O(n2)

()13.堆的形状是一棵_______。

A.二叉排序树

B.满二叉树

C.完全二叉树

D.平衡二叉树

()14.一个无向连连通图的生成树是含有该连通图的全部项点的_______。

A.极小连通子图

B.极小子图

C.极大连通子图

D.极大子图

()15.一个序列中有10000个元素,若只想得到其中前10个最小元素,最好采用_______方法

A.快速排序

B.堆排序

C.插入排序

D.二路归并排序

()16.设单链表中结点的结构为

typedef struct node { file://链表结点定义

ElemType data; file://数据

struct node * Link; file://结点后继指针

} ListNode;

已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作______。

A. s->link = p; p->link = s;

B. s->link = p->link; p->link = s;

C. s->link = p->link; p = s;

D. p->link = s; s->link = p;

()17.设单链表中结点的结构为

typedef struct node

{ file://链表结点定义

ElemType data; file://数据

struct node * Link; file://结点后继指针

} ListNode;

非空的循环单链表first的尾结点(由p所指向)满足:______

A. p->link == NULL;

B. p == NULL;

C. p->link == first;

D. p == first;

()18.计算机识别、存储和加工处理的对象被统称为_________

A.数据 B.数据元素

C.数据结构

D.数据类型

()19.在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是________

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

C.O(nlogn)

D.O(n2)

()20.队和栈的主要区别是________

A.逻辑结构不同

B.存储结构不同

C.所包含的运算个数不同

D.限定插入和删除的位置不同

()21.链栈与顺序栈相比,比较明显的优点是________

A.插入操作更加方便

B.删除操作更加方便

C.不会出现下溢的情况

D.不会出现上溢的情况

()22.在目标串T[0…n-1]=”xwxxyxy”中,对模式串p[0…m-1]=”xy”进行子串定位操作的结果_______

A.0

B.2

C.3

D.5

()23.已知广义表的表头为A,表尾为(B,C),则此广义表为________

A.(A,(B,C))

B.(A,B,C)

C.(A,B,C)

D.(( A,B,C))

()24.二维数组A按行顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为_______

A.470

B.471

C.472

D.473

()25.二叉树中第5层上的结点个数最多为________

A.8

B.15

C.16

D.32

()26.如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是_______

A.有向完全图

B.连通图

C.强连通图

D.有向无环图

()27.对n个关键字的序列进行快速排序,平均情况下的空间复杂度为_______

A.O(1)

B.O(logn)

C.O(n)

D.O(nlogn)

()28.对于哈希函数H(key)=key%13,被称为同义词的关键字是_______

A.35和41 B.23和39

C.15和44

D.25和51

()29. 由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为________。

A、 24

B、 48

C、 72

D、 53

()30.对包含N个元素的散列表进行检索,平均检索长度

A、为 o(log2N)

B、为o(N)

C、不直接依赖于N

D、上述三者都不是

()31. 向堆中插入一个元素的时间复杂度为________。

A、 O(log2n)

B、 O(n)

C、 O(1)

D、 O(nlog2n)

()32.下面关于图的存储的叙述中,哪一个是正确的。 ________

A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关

B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关

D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

()33.输入序列为(A,B,C,D),不可能得到的输出序列是______.

A. (A,B,C,D)

B.(D,C,B,A)

C.(A, C,D,B)

D.(C,A,B,D)

()34.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次

前移____个元素。

A、n-i

B、n-i+1

C、n-i-1

D、i

()35.设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为____。

A、O(1)

B、O(n)

C、O(n2)

D、O(log 2 n)

()36.假定一个顺序队列的队首和队尾指针分别为f和r,则判断队空的条件为 ____。

A、f+1==r

B、r+1==f

C、f==0

D、f==r

()37.从堆中删除一个元素的时间复杂以为____。

A、O(1)

B、O(log 2 n)

C、O(n)

D、O(nlog 2 n)

()38.若需要利用形参直接访问实参,则应把形参变量说明为____参数。

A.指针

B.引用

C.值

D.变量

()39.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行____。

A. q一>next=p一>next;p一>next=q;C. q一>next=p一>next;p一>next=q;

B. p一>next=q一>next;q=p; D. p一>next=q一>next;q一>next=p;

()40.在一个顺序队列中,队首指针指向队首元素的____位置。

A.前一个

B.后一个

C.当前

D.最后一个

()41.向二叉搜索树中插入一个元素时,其时间复杂度大致力____。

A O(1)

B O(1og2n)

C O(n)

D O(nlog2n)

()42.算法指的是________

A.计算机程序

B.解决问题的计算方法

C.排序算法

D.解决问题的有限运算序列

()43.线性表采用链式存储时,结点的存储地址________

A.必须是不连续的

B.连续与否均可

C.必须是连续的

D.和头结点的存储地址相连续

()44.将长充为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为________

A.O(1)

B.O(n)

C.O(m)

D.O(m+n)

()45.由两个栈共享一个向量空间的好处是:________

A.减少存取时间,降低下溢发生的机率

B.节省存储空间,降低上溢发生的机率

C.减少存取时间,降低上溢发生的机率

D.节省存储空间,降低下溢发生的机率

()46.设数组DAtA[m]作为循环队列SQ的存储空间,front为队头指针,reAr为队尾指针,则执行出队操作后其头指针front值为________

A. front=front+1

B. front=(front+1)%(m-1)

C. front=(front-1)%m

D. front=(front+1)%m

()47.如下陈述中正确的是________

A. 串是一种特殊的线性表

B. 串的长度必须大于零

C. 串中元素只能是字母

D. 空串就是空白串

()48.若目标串的长充为n,模式串的长度为[n/3],则执行模式匹配算法时,在最坏情况下的时间复杂度是________

A.O(1)

B.O(n)

C.O(n2)

D.O(n3)

()49.一个非空广义表的表头________

A.不可能是子表

B.只能是子表

C.只能是原子

D.可以是子表或原子

()50. 从堆中删除一个元素的时间复杂度为________。

A、 O(1)

B、 O(n)

C、 O(log2n)

D、 O(nlog2n)

()51.一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为________

A.4

B.5

C.6

D.7

()52. 从二叉搜索树中查找一个元素时,其时间复杂度大致为________。

A、 O(n)

B、 O(1)

C、 O(log2n)

D、 O(n2)

()53. 根据n个元素建立一棵二叉搜索树时,其时间复杂度大致为________。

A、 O(n)

B、 O(log2n )

C、 O(n2)

D、 O(nlog2n)

()54.用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况是如下________:

20,15,21,25,47,27,68,35,84

15,20,21,25,35,27,47,68,84

15,20,21,25,27,35,47,68,84

则所采用的排序方法是________

A.选择排序

B.希尔排序

C.归并排序

D.快速排序

()55.适于对动态查找表进行高效率查找的组织结构是________

A.有序表

B.分块有序表

C.二叉排序树

D.线性链表

()56. 若需要利用形参直接访问实参,则应把形参变量说明为________参数。

A 指针

B 引用

C 值

D 常量

()57.链式栈与顺序栈相比,一个比较明显的优点是________。

A. 插入操作更加方便

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

C. 不会出现栈空的情况

D. 删除操作更加方便

()58.设单链表中结点的结构为(data, link)。已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作________

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;

()59.若让元素1,2,3依次进栈,则出栈次序不可能出现________种情况。

A. 3, 2, 1

B. 2, 1, 3

C. 3, 1, 2

D. 1, 3, 2

()60.线性链表不具有的特点是________。

A. 随机访问

B. 不必事先估计所需存储空间大小

C. 插入与删除时不必移动元素

D. 所需空间与线性表长度成正比

()61.在稀疏矩阵的十字链接存储中,每个列单链表中的结点都具有相同的_____。

A.行号B.列号

C.元素值D.地址

()62.假定一个顺序队列的队首和队尾指针分别为front和rear,存放该队列的数组长度为N,则判断队空的条件为________。

A.(front+1)% N == rear C. front == 0

B.(rear+1)% N == front D. front == rear

()63.栈的插入和删除操作在___进行.

(A).栈顶 (B).栈底

(C).任意位置 (D).指定位置

()64. 在一个顺序循环队列中,队首指针指向队首元素的________位置。

A. 后两个

B. 后一个

C. 当前

D.前一个

()65.下面算法的时间复杂度为__。

int f(int n){

if (n==0)return 1;

else return n*f(n-1);}

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

C.O(n2) D.O(n!)

()66.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算的学科

①A、操作对象B、计算方法C、逻辑存储D、数据映象

②A、结构B、关系C、运算D、算法

()67.数据结构被形式地定义为(K,R),其中K是(①)的有限集合,R是K上(②)的有限集合

①A、算法B、数据元素C、数据操作D、逻辑结韵

②A、操作B、映象C、存储D、关系

()68.在数据结构中,从逻辑上可以把数据结构分为________

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

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

()69.线性表的顺序存储结构是一种_________的存储结构,线性表的链式存储结构是一种________的存储结构

A、随机存取B、顺序存取

C、索引存取D、HASH存取

()70.算法分析的目的是(①),算法分析的两个主要方面是(②)

①A、找出数据结构的合理性C、分析算法的效率以求改进

B、研究算法中的输入和输出的关系D、分析算法的易懂性和文档性

②A、空间复杂性和时间复杂性C、可读性和文档性

B、正确性和简明性D、数据复杂性和程序复杂性

()71.计算机算法指的是(①),它必具备输入、输出和(②)等五个特性

①A、计算方法B、排序方法

C、解决莱一问题的有限运算序列D、调度方法

②A、可执行性、可移植性和可扩充性C、确定性、有穷性和稳定性

B、可执行性、确定性和有穷性D、易谩性、稳定性和安全性

()72.线性表若采用链表存储结构时,要求内存中可用存储单元的地址________ A、必须是连续的B、部分地址必须是连续的

C、一定是不连续的D、连续不连续都可以

()73.在以下的叙述中,正确的是__________

A、线性表的线性存储结构优于链表存储结构C、栈的操作方式是先进先出

B、二维数组是它的每个数据元素为一个线性表的线性表D、队列的操作方式是先进后出()74. 一个数组元素A[i]与________的表示等价。

A、 *(A+i)

B、 A+i

C、 *A+i

D、 &A+i

()75. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型

B、参数个数

C、函数类型

D、函数变量

()76. 若需要利用形参直接访问实参,则应把形参变量说明为________参数

A、指针

B、引用

C、值

D、函数

()77.下面程序段的时间复杂度为____________。

for(int i=0; i

for(int j=0; j

A[i][j]=i*j;

A、 O(m2)

B、 O(n2)

C、 O(m*n)

D、 O(m+n)

()78. 执行下面程序段时,执行S语句的次数为____________。

for(int i=1; i<=n; i++)

for(int j=1; j<=i; j++)

S;

A、 n2

B、 n2/2

C、 n(n+1)

D、 n(n+1)/2

()79. 下面算法的时间复杂度为____________。

int f( unsigned int n ) {

if ( n==0 || n==1 ) return 1; else return n*f(n-1);

}

A、 O(1)

B、 O(n)

C、 O(n2)

D、 O(n!)

()80.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移个元素。

A、n-i

B、n-i+1

C、n-i-1

D、i

()81.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后

依次前移_____个元素。

A、n-i

B、n-i+1

C、n-i-1

D、i

()82.在一个长度为n的线性表中顺序查找值为x的元素时,查找时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为_____。

A、n

B、n/2

C、(n+1)/2

D、(n-1)/2

()83.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行_____ 。

A、HL = p; p->next = HL; C、p->next = HL; p = HL;

B、p->next = HL; HL = p; D、p->next = HL->next; HL->next = p;

()84.在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行_____。

A、q->next = p->next ; p->next = q; C、q->next = p->next; p->next = q;

B、p->next = q->next; q = p; D、p->next = q->next ; q->next = p;

()85.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行_____。

A、p = q->next ; p->next = q->next; C、p = q->next ; q->next = p->next;

B、p = q->next ; q->next = p; D、q->next = q->next->next; q->next = q;

()86. 在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的________。

A、行号

B、列号

C、元素值

D、地址

()87. 设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为_______。

A、 O(1)

B、 O(n)

C、 O(n2)

D、 O(log2n)

()88.栈的插入与删除操作在_____进行。

A、栈顶

B、栈底

C、任意位置

D、指定位置

()89.当利用大小为N的一维数组顺序存储一个栈时,假定用top==N表示栈空,则向这个栈插入一个元素时,首先应执行_____语句修改top指针。

A、top++

B、top--

C、top=0

D、top

()90.若让元素1,2,3依次进栈,则出栈次序不可能出现_____种情况。

A、3,2,1

B、2,1,3

C、3,1,2

D、1,3,2

()91.在一个循环顺序队列中,队首指针指向队首元素的_____位置。

A、前一个

B、后一个

C、当前

D、后面

()92.当利用大小为N的一维数组顺序存储一个循环队列时,该队列的最大长度为_____。

A、N-2

B、N-1

C、N

D、N+1

()93.从一个循环顺序队列删除元素时,首先需要_____。

A、前移一位队首指针

B、后移一位队首指针

C、取出队首指针所指位置上的元素

D、取出队尾指针所指位置上的元素

()94.假定一个循环顺序队列的队首和队尾指针分别为f和r,则判断队空的条件是_____。

A、f+1==r

B、r+1==f

C、f==0

D、f==r

()95.假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件是_____。

A、front==rear

B、front!=NULL

C、rear!=NULL

D、front==NULL

四、应用题:

1、栈和队列都是特殊线性表,其特殊性是什么?

2、设有一顺序队列sq,容量为5,初始状态sq.front=sq.rear=0,划出作完下列操作的队列及其头尾

指针变化状态,若不能入队,简述理由后停止。

1)d,e,b 入队。

2)d,e 出队。

3)i,j 入队。

4)b 出队。

5)n,o,p 入队。

3、设有一个顺序栈S,元素s1, s2, s3, s4, s5, s6依次进栈,如果6个元素的出栈顺序为s2, s3, s4, s6, s5, s1,则顺序栈的容量至少应为多少?

4、将两个栈存入数组V[1..m]中应如何安排最好?这时栈空、栈满的条件是什么?

5、已知稀疏矩阵如下:

请写出该稀疏矩阵三元组表示。

6、广义表A=(a,b,(c,d),(e,(f,g))),求其长度,及深度。

7、请画出下面广义表相应的加入表头结点的单链表表示,

D(A(x,y,L(a,b)),B(z,A(x,y,L(a,b))))。

8、一棵具有n个结点的理想平衡二叉树(即除离根最远的最底层外其他各层都是满的,最底层有若干结点)有多少层?若设根结点在第0层,则树的高度h如何用n来表示(注意n可能为0)?

9、设二叉树后根遍历为BAC,画出所有可能的二叉树。

10、假设一棵二叉树的层序序列是ABCDEFGHIJ和中序序列是DBGEHJACIF,请画出该树。

11、有一个完全二叉树按层次顺序存放在一维数组中,如下所示:

请指出结点P的父结点,左子女,右子女。

12、给出下列二叉树的先序序列。

13、已知某非空二叉树采用顺序存储结构,树中结点的数据信息依次存放在一个一维数组中,

ABC□DFE□□G□□H□□,该二叉树的中序遍历序列为:

14、设一棵二叉树的前序序列为1,2,3,4,5,6,7,8,9,其中序序列为2,3,1,5,4,7,8,6,9,试画出该二叉树。

15、已知一组元素为(46,25,78,62,12,37,70,29),试画出按元素排列次序插入生成的

一棵二叉树。

16、由于元素插入的次序不同,所构成的二叉排序树也有不同的状态,请画出一棵含有1,2,

3,4,5,6六个结点且以1为根,深度为4的二叉排序树。

17、什么是线索二叉树?为什么要线索化?

18、有n个顶点的有向连通图最多有多少条边?最少有多少条边?

19、下图中给出由7个顶点组成的无向图。从顶点1出发,

对它进行深度优先遍历得到的顶点序列是:

进行广度优先遍历得到的顶点序列是:

20、什么是连通图的生成树?

21、什么是哈夫曼(Huffman)树?

22、已知结点a,b,c,d及其权值写出哈夫曼树的构造过程。

a b c d

7 5 2 4

23、已知图G={V , E}

V={ a, b, c, d, e }

E={(a, b),(b, d),(c, d),(d, e),(e, a),(a, c)}

画出图G,画出图G的邻接表。

24、考虑下图:

1)从顶点A出发,求它的深度优先生成树。

2)从顶点E出发,求它的广度优先生成树。

3)根据普里姆(Prim)算法,求它的最小生成树。

25、设有关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序

进行排序。

若采用初始步长为4的Shell排序法,则一趟扫描的结果是:

若采用以第一个元素为分界元素的快速排序法,则一趟扫描的结果是:

26、一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对象为

基准而得到的第一次划分结果为:

27、用二分法对一个长度为10的有序表进行查找,填写查找每个元素需要的比较次数。

下标:0 1 2 3 4 5 6 7 8 9

比较次数:

28、若对序列(49,38,27,13,97,76,50,65)采用泡排序法(按照值的大小从小到大)进行排序,请分别在下

表中写出每一趟排序的结果。

原始序列49 38 27 13 97 76 50 65

第1趟的结果

第2趟的结果

第3趟的结果

第4趟的结果

29、给出一组关键字:29,18,25,47,58,12,51,10,分别写出按下列各种排序方法进行排序

时的变化过程:

1)归并排序每归并一次书写一个次序。

2)快速排序每划分一次书写一个次序。

数据结构考试试题及答案

数据结构 一、单选题 1. 计算机算法指的是(b )。 A.程序B.问题求解步骤的描述C.调度方法D.排序方法 2. 以下数据结构中,(a )个是非线性数据结构。 A.树B.字符串C.队D.栈 3. 对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为:(c )。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 4. 在单链表指针为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 5. n个顶点的有向图中,含有向边的数目最多为( d ) A.n-1 B.n C.n(n-1)/2 D.n(n-1) 6. 循环队列存储在数组A[0..m]中,则入队时的操作为( d ) A.rear=rear+1 B.rear=(rear+1)mod(m-1) C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 7. 字符串?ababaabab?的next函数为(d ) A.011232232 B.012341234 C.011122334 D. 011234234 8. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为( b )A.9 B.11 C.15 D.不确定 9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的首地址为( b )。A.BA+141 B.BA+180 C.BA+222 D.BA+225 10. n个顶点的带权无向连通图的最小生成树包含(b )个顶点 A.n-1 B.n C.n/2 D.n+1 11.有关二叉树的下列说法正确的是( b ) A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 12.关键路径是AOE网中( a )。 A.从源点到汇点的最长路径B.从源点到汇点的最短路径 C.最长回路 D.最短路径(从源点到汇点的所有路径中,经过弧的数目最多的路径) 13.若查找每个记录的概率相等,则在具有n个记录的连续文件中采用顺序查找查找一个记录,其平均查找长度ASL为(c)。 A.(n-1)/2 B.n/2 C.(n+1)/2 D.n 14.就平均性能而言,目前最好的内部排序方法是(d ) A.冒泡排序B.希尔排序C.堆排序D.快速排序 15.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是(d )A.head(tail(LS)) B.tail (head (LS) C.head(tail(head(tail(LS)))) D.head(tail(tail (head (LS)))) 17.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( a ) A. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B. 在第i个结点后插入一个新结点(1≤i≤n)

大数据考试题含答案精编WORD版

大数据考试题含答案精 编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

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. 商业 7 多选大数据五大类应用方向是: A. 查询

B. 触达 C. 统计 D. 预警 E. 预测 8 多选以下哪些指标是衡量大数据应用成功的标准? A. 成本更低 B. 质量更高 C. 速度更快 D. 风险更低 9 多选大数据有哪些价值? A. 用户身份识别 B. 描述价值 C. 实时价值 D. 预测价值 E. 生产数据的价值 10 多选大数据的预测价值体现在:

A. 预测用户的偏好、流失 B. 预测热卖品及交易额 C. 预测经营趋势 D. 评价 11 单选什么是大数据使用的最可靠方法? A. 大数据源 B. 样本数据源 C. 规模大 D. 大数据与样本数据结合 12 多选大数据是描述()所发生的行为。 A. 未来 B. 现在 C. 过去 D. 实时 13 多选传统研究中数据采集的方法包括: A. 网络监测

数据结构第二章试题

第2章线性表 一、选择题 1. 链表不具备的特点是()。 A.可随机访问任意结点 B. 插入删除不需要移动元素 C. 不必事先估计存储空间 D. 所需空间与其长度成正比 2. 不带头结点的单链表head为空的判定条件是()。 ==NULL B. head->next==NULL >next==head !=NULL 3.带头结点的单链表head为空的判定条件是()。 ==NULL B. head->next==NULL >next==head !=NULL 4.带头结点的双循环链表L为空表的条件是()。 A.L==NULL B.L->next->==NULL C.L->prior==NULL >next==L 5.非空的循环链表head的尾结点(由P所指向)满足()。 A.p->next==NULL B.p==NULL C.p->next==head ==head 6.在循环双链表的p所指结点之前插入s所指结点的操作是()。 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->right->next=s; D. s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s; 7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。 A.单链表 B.给出表头指针的单循环链表 C.双链表 D. 带头结点的双循环链表 8.某线性表最常用的操作是在最后一个结点之后插入一个节点或删除第一个结点,故采用()存储方式最节省运算时间。 A.单链表 B.仅有头结点的单循环链表 C.双链表 D. 仅有尾指针的单循环链表 9.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。 A.单链表 B.静态链表 C.线性链表 D. 顺序存储结构 10.如果最常用的操作是取第i个结点及前驱,则采用()存储方式最节省时间。 A.单链表 B.双链表 C.单循环链表 D.顺序表 11.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()。 A.O(1) B.O(n) C.O(n*n) D. O(nlog2n) 12.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。A.删除单链表中的第一个元素 B.删除单链表中的最后一个元素 C. 在单链表第一个元素前插入一个新元素 D.在单链表最后一个元素后插入一个新元素 13.设线性表有n个元素,以下算法中,()在顺序表上实现比在链表上实现效率更高。A.输出第i(0<=i<=n-1)个元素值 B.交换第0个元素与第1个元素的值 C. 顺序输出这n个元素的值 D.输出与给定值x相等的元素在线性表中的序号 14.设线性表有2n个元素,算法(),在单链表上实现比在顺序表上实现效率更高。 A.删除所有值为x的元素 B.在最后一个元素的后面插入一个新元素 C. 顺序输出前k个元素 D.交换第i个元素和第2n-i-1个元素的值(i=0,1,…,n-1)

数据结构二叉树实验报告

实验三二叉树的遍历 一、实验目的 1、熟悉二叉树的结点类型和二叉树的基本操作。 2、掌握二叉树的前序、中序和后序遍历的算法。 3、加深对二叉树的理解,逐步培养解决实际问题的编程能力。 二、实验环境 运行C或VC++的微机。 三、实验内容 1、依次输入元素值,以链表方式建立二叉树,并输出结点的值。 2、分别以前序、中序和后序遍历二叉树的方式输出结点内容。 四、设计思路 1. 对于这道题,我的设计思路是先做好各个分部函数,然后在主函数中进行顺序排列,以此完成实验要求 2.二叉树采用动态数组 3.二叉树运用9个函数,主要有主函数、构建空二叉树函数、建立二叉树函数、访问节点函数、销毁二叉树函数、先序函数、中序函数、后序函数、范例函数,关键在于访问节点 五、程序代码 #include #include #include #define OK 1 #define ERROR 0 typedef struct TNode//结构体定义 {

int data; //数据域 struct TNode *lchild,*rchild; // 指针域包括左右孩子指针 }TNode,*Tree; void CreateT(Tree *T)//创建二叉树按,依次输入二叉树中结点的值 { int a; scanf("%d",&a); if(a==00) // 结点的值为空 *T=NULL; else // 结点的值不为空 { *T=(Tree)malloc(sizeof(TNode)); if(!T) { printf("分配空间失败!!TAT"); exit(ERROR); } (*T)->data=a; CreateT(&((*T)->lchild)); // 递归调用函数,构造左子树 CreateT(&((*T)->rchild)); // 递归调用函数,构造右子树 } } void InitT(Tree *T)//构建空二叉树 { T=NULL; } void DestroyT(Tree *T)//销毁二叉树 { if(*T) // 二叉树非空 { DestroyT(&((*T)->lchild)); // 递归调用函数,销毁左子树 DestroyT(&((*T)->rchild)); // 递归调用函数,销毁右子树 free(T); T=NULL; } } void visit(int e)//访问结点 { printf("%d ",e); }

数据结构第二章线性表测试题

第二章线性表 1、描述一下三个概念的区别:头指针,头结点,首元结点。并给予图示。 2、对于有头结点的单链表,分别写出定位成功时,实现下列定位语句序列。(1)定位到第i 个结点a i ; (2)定位到第i 个结点的前驱a i-1; (3)定位到尾结点; (4)定位到尾结点的前驱。 3、已知L 是有表头结点的单链表,且P 结点既不是首元结点,也不是尾结点,试写出实现下列功能的语句序列。 (1)在P 结点后插入S 结点;(2)在P 结点前插入S 结点;(3)在表首插入S 结点;(4)在表尾插入S 结点 . p=head; p=head; j=0; while ( p && jnext; j++;} p=head; j=0; while ( p && jnext; j++;} p=head; while ( p ->next ) p=p->next; while ( p->next->next ) p=p->next; (1)s->next=p->next; p->next=s; (2)q =L ; whil e ( q ->next !=p ) q =q ->next;s->next=p 或 q ->next ; q ->next=s; (3 ) s->next=L ->next; L ->next=s; (4)q =L ; whil e ( q ->next !=NULL) q =q ->next;s->next= q ->next ; q ->next=s;

4、设计算法:在顺序表中删除值为e 的元素,删除成功,返回1;否则,返回0。 5、设计一个算法,将一个带头节点的数据域依次为a 1,a 2,…,a n (n ≥3)的单链表的所有节点逆置,即第一个节点的数据域变为a n ,…,最后一个节点的数据域为a 1。(注意:先用自然语言描述算法基本思想,然后用类C++语言描述) int Sqlist::DeleteElem( T e ) { for (i=1; i<=len g t h ; i ++) // 按值顺序查找 * i 可从0开始 if (elem[i-1]= =e) // 找到,进行删除操作 { for ( j=i; jnext; 4 LinkList* pri = NULL; //之前的节点 5 while(p){ 6 LinkList* q = new LinkList; 7 q->data = p->data; //把当前节点记录下来 8 q->next = pri; 9 pri = q; 10 head->next = q; 11 LinkList* t = p; //当前节点没用了删除掉 12 p=p->next; 13 delete(t); 14 } 15 }

数据结构实验报告-二叉树的实现与遍历

《数据结构》第六次实验报告 学生姓名 学生班级 学生学号 指导老师

一、实验内容 1) 采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序 以及按层次遍历的操作,求所有叶子及结点总数的操作。 2) 输出树的深度,最大元,最小元。 二、需求分析 遍历二叉树首先有三种方法,即先序遍历,中序遍历和后序遍历。 递归方法比较简单,首先获得结点指针如果指针不为空,且有左子,从左子递归到下一层,如果没有左子,从右子递归到下一层,如果指针为空,则结束一层递归调用。直到递归全部结束。 下面重点来讲述非递归方法: 首先介绍先序遍历: 先序遍历的顺序是根左右,也就是说先访问根结点然后访问其左子再然后访问其右子。具体算法实现如下:如果结点的指针不为空,结点指针入栈,输出相应结点的数据,同时指针指向其左子,如果结点的指针为空,表示左子树访问结束,栈顶结点指针出栈,指针指向其右子,对其右子树进行访问,如此循环,直至结点指针和栈均为空时,遍历结束。 再次介绍中序遍历: 中序遍历的顺序是左根右,中序遍历和先序遍历思想差不多,只是打印顺序稍有变化。具体实现算法如下:如果结点指针不为空,结点入栈,指针指向其左子,如果指针为空,表示左子树访问完成,则栈顶结点指针出栈,并输出相应结点的数据,同时指针指向其右子,对其右子树进行访问。如此循环直至结点指针和栈均为空,遍历结束。 最后介绍后序遍历: 后序遍历的顺序是左右根,后序遍历是比较难的一种,首先需要建立两个栈,一个用来存放结点的指针,另一个存放标志位,也是首先访问根结点,如果结点的指针不为空,根结点入栈,与之对应的标志位也随之入标志位栈,并赋值0,表示该结点的右子还没有访问,指针指向该结点的左子,如果结点指针为空,表示左子访问完成,父结点出栈,与之对应的标志位也随之出栈,如果相应的标志位值为0,表示右子树还没有访问,指针指向其右子,父结点再次入栈,与之对应的标志位也入栈,但要给标志位赋值为1,表示右子访问过。如果相应的标志位值为1,表示右子树已经访问完成,此时要输出相应结点的数据,同时将结点指针赋值为空,如此循环直至结点指针和栈均为空,遍历结束。 三、详细设计 源代码:

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 .没有共同点

数据结构试题及答案

一、单选题(每题2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结 点,则执行( A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 3.对线性表,在下列哪种情况下应当采用链表表示?(B ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是 ( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. 5.AOV网是一种( D )。 A.有向图B.无向图C.无向无环图D.有向无环图 6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度(B)。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同D.高于二分查找 7.7.若需要利用形参直接访问实参时,应将形参变量说明为(D )参数。 A.值B.函数C.指针D.引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具 有相同的(A)。 A.行号B.列号C.元素值D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为(D )。 A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 二、二、运算题(每题 6 分,共24分) 1. 1.数据结构是指数据及其相互之间的______________。当结点之间存在M 对N(M:N)的联系时,称这种结构为_____________________。 2. 2.队列的插入操作是在队列的___尾______进行,删除操作是在队列的 ____首______进行。 3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则 表示栈满的条件是___top==0___(要超出才为满)_______________。 4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度 为____O(1)_____,在表尾插入元素的时间复杂度为____O n________。

数据结构实验-二叉树的操作

******************************* 实验题目:二叉树的操作 实验者信息:班级13007102,姓名庞文正,学号1300710226 实验完成的时间3:00 ****************************** 一、实验目的 1,掌握二叉树链表的结构和二叉树的建立过程。 2,掌握队列的先进先出的运算原则在解决实际问题中的应用。 3,进一步掌握指针变量、指针数组、动态变量的含义。 4,掌握递归程序设计的特点和编程方法。 二、实验内容 已知以二叉链表作存储结构,试编写按层次遍历二叉树的算法。(所谓层次遍历,是指从二叉树的根结点开始从上到下逐层遍历二叉树,在同一层次中从左到右依次访问各个节点。)调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果。加深对算法的理解。 三、算法设计与编码 1.本实验用到的理论知识 总结本实验用到的理论知识,实现理论与实践相结合。总结尽量简明扼要,并与本次实验密切相关,最好能加上自己的解释。 本算法要采用一个循环队列que,先将二叉树根结点入队列,然后退队列,输出该结点;若它有左子树,便将左子树根结点入队列;若它有右子树,便将右子树根结点入队列,直到队列空为止。因为队列的特点是先进先出,从而达到按层次顺序遍历二叉的目的。2.算法概要设计 给出实验的数据结构描述,程序模块、功能及调用关系 #include #include #define M 100 typedef struct node //二叉链表节点结构 {int data; //数据域 struct node *lchild,*rchild; //左孩子右孩子链 }bitree; bitree *que[M]; //定义一个指针数组,说明队列中的元素bitree 指针类型 int front=0, rear=0; //初始化循环列队 bitree *creat() //建立二叉树的递归算法 {bitree *t; int x; scanf("%d",&x); if(x==0) t=NULL; //以x=0 表示输入结束 else {t=malloc(sizeof(bitree)); //动态生成节点t,分别给节点t 的数据域,t->data=x; //左右孩子域赋值,给左右孩子赋值时用到 t->lchild=creat(); // 了递归思想 t->rchild=creat(); }

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

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

————————————————————————————————作者:————————————————————————————————日期:

2012年数据结构期末考试题及答案 一、选择题 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<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;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。

大数据时代题目及答案(三套试题仅供参考)

大数据时代题目及答案(三套试题仅供参考)

第一套试题 1、当前大数据技术的基础是由(C)首先提出的。(单选题,本题2分) A:微软 B:百度 C:谷歌 D:阿里巴巴 2、大数据的起源是(C )。(单选题,本题2分) A:金融 B:电信 C:互联网 D:公共管理 3、根据不同的业务需求来建立数据模型,抽取最有意义的向量,决定选取哪种方法的数据分析角色人员是(C)。(单选题,本题2分) A:数据管理人员 B:数据分析员 C:研究科学家 D:软件开发工程师 4、(D )反映数据的精细化程度,越细化的数据,价值越高。(单选题,本题2分) A:规模 B:活性 C:关联度 D:颗粒度 5、数据清洗的方法不包括( D)。(单选题,本题2分) A:缺失值处理 B:噪声数据清除 C:一致性检查 D:重复数据记录处理 6、智能健康手环的应用开发,体现了( D)的数据采集技术的应用。(单选题,本题2分) A:统计报表 B:网络爬虫 C:API接口 D:传感器 7、下列关于数据重组的说法中,错误的是(A)。(单选题,本题2分) A:数据重组是数据的重新生产和重新采集 B:数据重组能够使数据焕发新的光芒 C:数据重组实现的关键在于多源数据融合和数据集成 D:数据重组有利于实现新颖的数据模式创新 8、智慧城市的构建,不包含( C)。(单选题,本题2分) A:数字城市 B:物联网 C:联网监控 D:云计算 9、大数据的最显著特征是(A)。(单选题,本题2分) A:数据规模大 B:数据类型多样 C:数据处理速度快 D:数据价值密度高10、美国海军军官莫里通过对前人航海日志的分析,绘制了新的航海路线图,标明了大风与洋流可能发生的地点。这体现了大数据分析理念中的(B )。(单选题,本题2分) A:在数据基础上倾向于全体数据而不是抽样数据 B:在分析方法上更注重相关分析而不是因果分析 C:在分析效果上更追究效率而不是绝对精确 D:在数据规模上强调相对数据而不是绝对数据 11、下列关于舍恩伯格对大数据特点的说法中,错误的是(D)。(单选题,本题2分) A:数据规模大 B:数据类型多样 C:数据处理速度快 D:数据价值密度高12、当前社会中,最为突出的大数据环境是(A)。(单选题,本题2分) A:互联网 B:物联网 C:综合国力 D:自然资源 13、在数据生命周期管理实践中,( B)是执行方法。(单选题,本题2分) A:数据存储和备份规范 B:数据管理和维护 C:数据价值发觉和利用 D:数据应用开发和管理 14、下列关于网络用户行为的说法中,错误的是(C)。(单选题,本题2分) A:网络公司能够捕捉到用户在其网站上的所有行为 B:用户离散的交互痕迹能够为企业提升服务质量提供参考 C:数字轨迹用完即自动删除 D:用户的隐私安全很难得以规范保护 15、下列关于计算机存储容量单位的说法中,错误的是( C)。(单选题,本题2分) A:1KB<1MB<1GB B:基本单位是字节(Byte) C:一个汉字需要一个字节的存储空间 D:一个字节能够容纳一个英文字符, 16、下列关于聚类挖掘技术的说法中,错误的是(B)。(单选题,本题2分) A:不预先设定数据归类类目,完全根据数据本身性质将数据聚合成不同类别

数据结构第二章练习题 - 副本

《数据结构》第二章练习题 1.单项选择题 2.1链表不具备的特点是() A 可随机访问任一结点 B 插入删除不需要移动元素 C 不必事先估计存储空间 D 所需空间与其长度成正比 2.2 不带头节点的单链表head为空的判定条件是() A head==NULL B head->next==NULL C head->next==head D head!=NULL 2.3带头节点的单链表head为空的判定条件是() A head==NULL B head->next==NULL C head->next==head D head!=NULL 2.4 带头结点的双循环链表L为空的条件是() A L==NULL B l->next->==NULL C L->prior==NULL D L->next==L 2.5 非空的循环单链表head尾结点(由P所指向)满足() A P->next==NULL B P==NULL C P->next==head D P==head 2.6在双循环链表中的P所指结点之前插入s所指结点的操作是() 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->right->next=s; D s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s; 2.7若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间 A 单链表 B 给出表头指针的单循环链表 C 双链表 D 带头结点的双循环链表 2.8某线性表最常用的操作时在最后一个结点之后插入一个结点或删除第一个结点,故采用()存储方式最节省运算时间 A 单链表B仅有头结点的单循环链表

数据结构实验报告之树与二叉树

学生实验报告 学院:软通学院 课程名称:数据结构与算法 专业班级:软件142 班 姓名:邹洁蒙 学号: 0143990

学生实验报告 (二) 一、实验综述 1、实验目的及要求 目的:1)掌握树与二叉树的基本概念; 2)掌握二叉树的顺序存储,二叉链表的先序遍历中序遍历和后序遍历算法; 3)掌握树的双亲表示法。 要求:1)编程:二叉树的顺序存储实现; 2)编程:二叉链表的先序遍历中序遍历和后序遍历实现; 3)编程:树的双亲表示法实现。 2、实验仪器、设备或软件 设备:PC 软件:VC6 二、实验过程(编程,调试,运行;请写上源码,要求要有注释) 1.编程:二叉树的顺序存储实现 代码: BiTree::BiTree()//建立存储空间 { data = new int[MAXSIZE]; count = 0; } void BiTree::AddNode(int e)//加结点 { int temp = 0; data[count] = e; count++;//从编号0开始保存 }

运行截图: 2.编程:二叉链表的先序遍历中序遍历和后序遍历实现代码: void InOrderTraverse(BiTree* Head)//中序遍历 { if (Head) { InOrderTraverse(Head->LeftChild); cout << Head->data<<" "; InOrderTraverse(Head->RightChild); } } void PreOrderTraverse(BiTree* Head)//先序遍历 { if (Head) { cout << Head->data << " "; PreOrderTraverse(Head->LeftChild); PreOrderTraverse(Head->RightChild); } } void PostOrderTraverse(BiTree* Head)//后序遍历 { if (Head) { PostOrderTraverse(Head->LeftChild); PostOrderTraverse(Head->RightChild); cout << Head->data << " "; } } 运行截图:

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

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.以顺序方式存储,且数据元素有序

数据结构试题及答案修2

试卷一 一、单选题(每题 2 分,共20分) 1. 对一个算法的评价,不包括如下()方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 对线性表,在下列哪种情况下应当采用链表表示?( ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. AOV网是一种()。 A.有向图B.无向图C.无向无环图D.有向无环图 7. 若需要利用形参直接访问实参时,应将形参变量说明为()参数。 A.值B.函数C.指针D.引用 8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。 A.行号B.列号C.元素值D.非零元素个数 二、填空题(每空1分,共28分) 1. 数据结构是指数据及其相互之间的______________。当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。 2. 队列的插入操作是在队列的___尾______进行,删除操作是在队列的____首______进行。 3. 当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是___top==0_____________。 4. 对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。 7. 二叉树是指度为2的____________________树。一棵结点数为N的二叉树,其所有结点的度的总和是_____________。 8. 对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。 9. 对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为_____________个,其中_______________个用于指向孩子,_________________个指针是空闲的。 10. 若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A[0]中。其余类推,则A[ i ]元素的左孩子元素为________,右孩子元素为

数据结构实验报告—二叉树

算法与数据结构》课程实验报告

一、实验目的 1、实现二叉树的存储结构 2、熟悉二叉树基本术语的含义 3、掌握二叉树相关操作的具体实现方法 二、实验内容及要求 1. 建立二叉树 2. 计算结点所在的层次 3. 统计结点数量和叶结点数量 4. 计算二叉树的高度 5. 计算结点的度 6. 找结点的双亲和子女 7. 二叉树前序、中序、后序遍历的递归实现和非递归实现及层次遍历 8. 二叉树的复制 9. 二叉树的输出等 三、系统分析 (1)数据方面:该二叉树数据元素采用字符char 型,并且约定“ #”作为二叉树输入结束标识符。并在此基础上进行二叉树相关操作。 (2)功能方面:能够实现二叉树的一些基本操作,主要包括: 1. 采用广义表建立二叉树。 2. 计算二叉树高度、统计结点数量、叶节点数量、计算每个结点的度、结点所在层次。 3. 判断结点是否存在二叉树中。 4. 寻找结点父结点、子女结点。 5. 递归、非递归两种方式输出二叉树前序、中序、后序遍历。 6. 进行二叉树的复制。 四、系统设计 (1)设计的主要思路 二叉树是的结点是一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树、互不相交的二叉树组成。根据实验要求,以及课上老师对于二叉树存储结构、基本应用的讲解,同时课后研究书中涉及二叉树代码完成二叉树模板类,并将所需实现各个功能代码编写完成,在建立菜单对功能进行调试。 (2)数据结构的设计 二叉树的存储结构有数组方式和链表方式。但用数组来存储二叉树有可能会消耗大量的存储空间,故在此选用链表存储,提高存储空间的利用率。根据二叉树的定义,二叉

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

2012年数据结构期末考试题及答案 一、选择题 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<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;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。

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