数据结构复习题.docx
《数据结构复习题.docx》由会员分享,可在线阅读,更多相关《数据结构复习题.docx(15页珍藏版)》请在冰豆网上搜索。
数据结构复习题
一、选择题
1.以下数据结构中,(D)是线性结构。
A.图B.二叉树C.树D.串
2.线性表是具有n个(C)的有限序列。
A.表元素B.字符C.数据元素D.数据项E.信息项
3.线性表采用链接存储时,其地址(D)。
A.必须是连续的 B.部分地址必须是连续的
C.一定是不连续的 D.连续与否均可以
4.一个队列的入队顺序是1,2,3,4,则队列的输出顺序是(B)。
A.4321B.1234C.1432D.3241
(
5.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为(A)。
A.(rear-front+m)%mB.rear-front+1
C.(front-rear+m)%mD.(rear-front)%m
6.在一个无向图中,所有顶点的度数之和等于所有边数的(D)倍。
A.1/2B.1C.4D.2
7.串的长度是指(B)
A.串中所含不同字母的个数B.串中所含字符的个数
C.串中所含不同字符的个数D.串中所含非空格字符的个数
8.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为(C)。
A.求子串B.联接C.匹配D.求串长
】
9.数据结构是一门研究非数值计算的程序设计问题中,计算机的操作对象以及它们之间的(B)和操作等的学科。
A.结构B.关系C.逻辑存储D.算法
10.设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是(B)。
A.2
11.(D)是C语言中“abcd321ABCD”的子串。
A.abcdB.321ABC.“abcABC”D.“21AB”
子串的定义是什么串中任意个连续的字符组成的子序列成为该串的子串。
12.二分查找要求被查找的表是(C)
A.键值有序的链接表B.链接表但键值不一定有序
C.键值有序的顺序表D.顺序表但键值不一定有序
!
13.数据结构的形式定义为(D,S),其中D是(B)的有限集。
A.算法B.数据元素C.数据操作D.逻辑结构
14.一个算法指的是(B)。
A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C
15.具有10个叶结点的二叉树中有(B)个度为2的结点。
A.8B.9C.10D.ll
16.以下数据结构中,(D)是线性结构。
A.图B.二叉树C.树D.串
17.数据结构的形式定义为(D,S),其中D是(B)的有限集。
A.算法B.数据元素C.数据操作D.逻辑结构
#
18.一个算法指的是(B)。
A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C
A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
19.在一个无向图中,所有顶点的度数之和等于所有边数的(D)倍。
A.1/2B.1C.4D.2
20.串是任意有限个(C)。
《
A.符号构成的序列B.符号构成的集合
C.字符构成的序列D.字符构成的集合
21.二分查找要求被查找的表是(C)
A.键值有序的链接表B.链接表但键值不一定有序
C.键值有序的顺序表D.顺序表但键值不一定有序
22.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:
(B)。
A.=s;=;B.=;=s;
C.=s;=;D.p.>next=;=s;
23.一个栈的输入序列为1,2,3,4,下面哪一个序列不可能是这个栈的输出序列( C ).
A、1,3,2,4B、2,3,4,1
)
C、4,3,1,2D、3,4,2,1
24.折半查找要求查找表中各元素的关键字值必须是(A)排列。
A、 递增或递减B、递增C、递减D、无序
25.在已知待排序文件已基本有序的前提下,效率最高的排序方法是(A)
A、直接插入排序B、直接选择排序C、快速排序D、归并排序
26.数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的(B)和操作等的学科。
A.结构B.关系C.逻辑存储D.算法
27.下面(C)不是算法所必须具备的特性。
A.有穷性B.确切性C.高效性D.可行性
28.已知一维数组A采用顺序存储结构,每个元素占用4个存储单元,第9个元素的地址为144,则第一个元素的地址是(A)。
》
A.108B.180C.176D.112
29.一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是(C)。
A.54321B.45321C.43512D.12345
30.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为(A)。
A.(rear-front+m)%mB.rear-front+1
C.(front-rear+m)%mD.(rear-front)%m
31.设有两个串p和q,求q在p中首次出现的位置的运算称作(B)。
A.连接B.模式匹配C.求子串D.求串长
32.串的长度是指(B)
A.串中所含不同字母的个数B.串中所含字符的个数
@
C.串中所含不同字符的个数D.串中所含非空格字符的个数
33.一棵二叉树前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历结果为(A)。
A.CBEFDAB.FEDCBAC.CBEDFAD.不定
34.在一棵高度为k的满二叉树中,结点总数为()
A.2k-1B.2kC.2k-1D.log2k+1
CA.2k-1B.2k-1-1C.2k-1D.2k
解析:
一棵高为k的完全二叉树,当第k层只有最左边一个结点时具有最少的结点。
根据二叉树的性质,第1层到第k-1层共有结点2k-1-1个,因此它至少有2k-1-1+1=2k-1个结点。
35.当采用分快查找时,数据的组织方式为(B)
A.数据分成若干块,每块内数据有序
B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块
!
C.数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块
D.数据分成若干块,每块(除最后一块外)中数据个数需相同
36.下面关于线性表的叙述中,错误的是(B)。
A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
二、判断题(正确的打“√”,错误的打“Х”)
1.数据的逻辑结构有线性结构和非线性结构两大类。
(√)
2.数据元素是数据的最小单位。
(Х)数据项
(
3.队列逻辑上是一个下端口和上端口能增加又能减少的线性表。
(Х)头只减少,尾只增加
4.每种数据结构都具备三个基本操作:
插入、删除和查找。
(Х)
5.线性表的逻辑顺序和存储顺序总是一致的。
(Х)
6.数据元素可由若干个数据项组成。
(√)
7.线性表的特点是每个元素都有一个前驱和一个后继。
(Х)
8.若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列3,2,5,6,4,1。
(√)
9.空串与空格串是相同的。
(Х)
10.基于某种逻辑结构之上的运算,其实现是唯一的。
(Х)
11.评价一个算法时间性能的主要标准是算法的时间复杂度。
(√)
12.链表中的头结点仅起到标识的作用。
(Х)
《
13.顺序存储的线性表可以随机存取。
(√)
14.顺序存储的线性表可以随机存取。
(√)
15.单链表表示法的基本思想是用指针表示结点间的逻辑关系。
(√)
16.栈与队列是一种操作受限的线性表。
(√)
17.数据项是数据的不可分割的最小单位。
(√)
18.单链表表示法的基本思想是用指针表示结点间的逻辑关系。
(√)
19.栈与队列是一种操作受限的线性表。
(√)
20.通常从正确性、易读性、健壮性、高效性等四个方面评价算法(包括程序)的质量。
(√)
21.数据元素是数据的最小单位。
(Х)数据项
22.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
(√)
~
23.线性表的逻辑顺序和存储顺序总是一致的。
(Х)
24.栈和队列都是限制存取点的线性结构。
(√)
25.在二叉树的先序遍历序列中,任意一个结点均处在其子女的前面。
(√)
26.串是一种数据对象和操作都特殊的线性表。
(√)
27.空串与空格串是相同的。
(Х)
28.一个有向图的邻接表和逆邻接表中的结点个数一定相等。
(√)
29.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。
(Х)
30.顺序存储的线性表可以随机存取。
(√)
31.在单链表中,要删除某一指定的结点,必须找到该结点的直接前驱结点。
(Х)
32.链栈与顺序栈相比,有一个比较明显的优点即通常不会出现栈满的情况。
(√)
`
33.设有一个空栈,现有输入序列为A、B、C、D、E,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH操作后,输出序列是B、C。
(Х)ADE栈:
先进后出
34.循环队列的队满条件为sq.(rear+1)%maxsize==。
(√)
35.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树。
(Х)
36.数据的逻辑结构有线性结构和非线性结构两大类。
(√)
37.顺序存储的线性表可以随机存取。
(√)
38.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树。
(Х)
39.对链表进行插入和删除操作时,不必移动结点。
(√)
40.栈和队列的共同特点是只允许在端点处插入和删除。
(√)
41.在单链表中,要删除某一指定的结点,必须找到该结点的直接前驱结点。
(Х)
42.设有一个空栈,现有输入序列为A、B、C、D、E,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH操作后,输出序列是B、C。
(Х)
$
43.有向图用邻接矩阵表示后,顶点i的入度等于邻接矩阵中第i列的元素个数。
(√)
44.链栈与顺序栈相比,有一个比较明显的优点即通常不会出现栈满的情况。
(√)
45.通常从正确性、易读性、健壮性、高效性等四个方面评价算法(包括程序)的质量。
(√)
46.数据元素是数据的最小单位。
(Х)数据项
47.单链表表示法的基本思想是用指针表示结点间的逻辑关系。
(√)
48.栈与队列是一种操作受限的线性表。
(√)
49.队列逻辑上是一个下端口和上端口能增加又能减少的线性表。
(Х)
50.有向图用邻接矩阵表示后,顶点i的入度等于邻接矩阵中第i列的元素个数。
(√)
51.链栈与顺序栈相比,有一个比较明显的优点即通常不会出现栈满的情况。
(√)
52.逻辑结构与数据元素本身的内容和形式无关。
(√)
,
53.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
(√)
54.对任何数据结构链式存储结构一定优于顺序存储结构。
(×)
55.顺序存储方式只能用于存储线性结构。
(Х)
56.循环链表不是线性表。
(Х)
57.线性表中每个元素都有一个直接前驱和一个直接后继。
(Х)
58.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。
(√)
59.线性表中存在没有前驱或后继的元素。
(√)
60.基于某种逻辑结构之上的运算,其实现是唯一的。
(Х)
61.线性表的逻辑顺序和存储顺序总是一致的。
(Х)
62.栈与队列是一种特殊操作的线性表。
(√)
(
63.串是一种数据对象和操作都特殊的线性表。
(√)
64.由树转换成二叉树,其根结点的右子树总是空的。
(√)
65.一个有向图的邻接表和逆邻接表中的结点个数一定相等。
(√)
66.冒泡排序算法关键字比较的次数与记录的初始排列次序无关。
(Х)选择排序
67.对线性表进行折半查找时,要求线性表必须以链式方式存储,且结点按关键字有序排列。
(√)
68.通常从正确性、易读性、健壮性、高效性等四个方面评价算法(包括程序)的质量。
(√)
69.对任何数据结构链式存储结构一定优于顺序存储结构。
(×)
70.长度为1的串等价于一个字符型常量。
(×)
71.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。
(√)
三、填空题
|
1.链栈中,在作进栈运算时不必判别栈是否(空);在作退栈运算时应先判别栈是否(满)。
2.二叉树由(根结点)、(左子树)和(右子树)三个基本单元组成。
3.数据结构中评价算法的两个重要指标是空间复杂度、时间复杂度。
4.在单链表L中,指针p所指结点有后继结点的条件是:
_p->next!
=NULL。
5.在一个长度为n的顺序表的第i(1≤i≤n+1)个元素之前插入一个元素,需向后移动n-i+1个元素,删除第i(1≤i≤n)个元素时,需向前移动n-i个元素。
6.设有一个空栈(每个元素占2个字节),栈顶指针为1000H,现有输入序列为1、2、3、4、5,经过push,push,pop,push,pop,push,push后,输出序列是__145,栈顶指针为__5。
7.根据数据元素之间关系的不同特性,通常有(集合结构)、(线性结构)(树状结构)、(网络结构)四类基本逻辑结构,它们反映了四类基本的数据组织形式。
8.串是一种特殊的线性表,其特殊性体现在_数据元素是一个字符。
9.两个串相等的充分必要条件是__两个串的长度相等、_对应位置的字符相同。
10.一棵二叉树的第i(i≥1)层最多有__2i-1个结点;一棵有n(n>0)个结点的满二叉树共有__2/n个叶子结点和__2/n个非终端结点。
(
11.一棵有n个结点的满二叉树有(0)个度为1的结点、有((n-1)/2)个分支(非终端)结点和((n+1)/2)个叶子,该满二叉树的深度为(log2n+1)。
12.图的存储结构主要有两种,分别是邻接矩阵和邻接表
13.算法具有的5个特性是:
(确定性)、(可行性)、(有穷性)、输入和输出。
14.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为(n)次;当使用监视哨时,若查找失败,则比较关键字的次数为(n+1)。
15.top=0表示栈空,此时作退栈运算,则产生“(下溢)”;top=sqstack_maxsize-1表示栈满,此时作进栈运算,则产生“(上溢)”。
16.线性结构的基本特征是:
若至少含有一个结点,则除起始结点没有直接(前驱)外,其他结点有且仅有一个直接(前驱);除终端结点没有直接(后继)外,其它结点有且仅有一个直接(后继)。
17.在树形结构中,树根结点没有(前驱)结点,其余每个结点有且只有
(1)个前驱结点;叶子结点没有(后继)结点,其余每个结点的后继结点可以有(任意多)个。
18.根据数据元素之间关系的不同特性,通常有集合、(线性)、(树状)、(网络)四类基本逻辑结构,它们反映了四类基本的数据组织形式。
19.组成串的数据元素只能是(单个字符),空串是(空格),其长度等于(空格个数)。
20.具有n个结点的二叉树的中,一共有2n个指针域,其中只有(n-1)个用来指向结点的左右孩子,其余的(n+1)个指针域为NULL。
;
21.根据数据元素之间关系的不同特性,通常有(集合结构)、(线性结构)(树状结构)、(网络结构)四类基本逻辑结构,它们反映了四类基本的数据组织形式。
22.在树形结构中,树根结点没有(前驱)结点,其余每个结点有且只有
(1)个前驱结点;叶子结点没有(后继)结点,其余每个结点的后继结点可以有(任意多)个。
23.二叉排序树是一种特殊的、增加了限制条件的二叉树,其限制条件是任一结点的键值(大)于其左孩子(及其子孙)的键值且(小)于其右孩子(及其子孙)的键值。
24.链栈中,在作进栈运算时不必判别栈是否(空);在作退栈运算时应先判别栈是否(满)。
25.一棵有n个结点的满二叉树有(0)个度为1的结点、有((n-1)/2)个分支(非终端)结点和((n+1)/2)个叶子,该满二叉树的深度为(log2n+1)。
26.二叉树由(根结点)、(左子树)和(右子树)三个基本单元组成。
27.栈中存取数据的原则是(先进后出),队列中存取数据的原则是( 先进先出 )。
28.组成串的数据元素只能是(单个字符),空串是(空格),其长度等于(空格个数)。
29.数据结构是讨论数据元素关系的集合,描述数据间1:
1关系的是线性结构、描述1:
m关系的是树状结构、描述m:
n关系的是图结构。
30.我们将数据结构在计算机中的表示形式称为数据的物理结构或存储结构,则数据结构在计算机中主要有两种不同的存储结构,顺序表逻辑上相邻的元素的物理位置必定相邻,单链表中逻辑上相邻的元素的物理位置则不一定相邻。
】
31.具有先进先出操作特征的数据结构是队列、具有先进后出的操作特征的数据结构是栈。
32.栈中存取数据的原则是( 先进后出),队列中存取数据的原则是( 先进先出 )。
33.组成串的数据元素只能是(单个字符),空串是(空格),其长度等于(空格个数)。
34.二叉排序树是一种特殊的、增加了限制条件的二叉树,其限制条件是任一结点的键值(大)于其左孩子(及其子孙)的键值且(小)于其右孩子(及其子孙)的键值。
35.根据二叉树的特征,我们可以知道,一颗深度为k的满二叉树的节点个数有2k-1。
36.我们在讨论图的存储结构时主要使用了邻接矩阵和邻接表两种。
37.在讨论查找表时,我们主要讨论了两种查找表动态查找表和静态查找表,后者在查找特定数据元素的过程中,不会更改表中的数据。
38在一个具有n个顶点的无向完全图中,包含有___n*(n-1)/2___条边,在一个具有n个顶点的有向完全图中,包含有___n*(n-1)___条边。
39设一棵完全二叉树中有500个结点,则该二叉树的深度为_____9_____;若用二叉链表作为该完全二叉树的存储结构,则共有___501_个空指针域。
1+2+4+8+16+32+64+128+245=500,空指针域244*2+6*2+1=501
…
40顺序表中第一个元素的存储地址是1000,每个元素的长度为4,则第10个元素的存储地址是(1036)。
41.空格串是指(空串),其长度等于(0)。
42.数据元素间呈1:
1关系的线性结构,呈1:
m关系的是树结构,呈m:
n关系的是图结构。
四、已知一个无向图G的邻接表如下图所示:
画出这个图
。
五、设有数据结构(D,R),其中D={1,2,3,4,5,6},R={<1,2>,<2,3>,<2,4>,<3,4>,<3,5>,<3,6>,<4,5>,<4,6>}。
试画出其逻辑结构图并指出属于何种结构。
(10分)
(1)将下面图1所示的树转换为二叉树,
(2)图2所示的二叉树转换为树或森林。
(17分,
(1)为10分,
(2)为7分)
图1图2
六、存在以下一个森林,请你画出对应该森林的二叉树结构,并分别给出它们的先序,中序和后序遍历顺序。
(10分)
}
七、已知一个二叉树的先序遍历和中序遍历如下:
先序遍历:
EFHIGJK;中序遍历:
HFIEJKG,
完成下面三个小题。
1.试画出此二叉树。
2.写出这棵二叉树的后序遍历序列。
3.将这棵二叉树转换成对应的树(或森林)。
八、下面是对一棵二叉树进行遍历的前序和中序遍历序列,试画出该二叉树的形状。
前序遍历序列:
ABCDEFGHI
中序遍历序列:
BCAEDGHFI
九、将下面图1所示的树转换为二叉树,图2所示的二叉树转换为树或森林。
(6分)