数据结构复习题.docx
- 文档编号:28066430
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:11
- 大小:24.56KB
数据结构复习题.docx
《数据结构复习题.docx》由会员分享,可在线阅读,更多相关《数据结构复习题.docx(11页珍藏版)》请在冰豆网上搜索。
数据结构复习题
数据结构复习题
选择题
1)对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。
(A)、正确性(B).可行性(C).健壮性(D).输入性
2)设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。
for(i=n-1;i>=0;i--)
for(j=0;j
(A)、n2(B)、O(nlgn)(C)、O(n)(D)、O(n2)
3)折半查找法适用于()。
(A)、有序顺序表(B)、有序单链表
(C)、有序顺序表和有序单链表都可以(D)、无限制
4)顺序存储结构的优势是()。
(A)、利于插入操作(B)、利于删除操作
(C)、利于顺序访问(D)、利于随机访问
5)深度为k的完全二叉树,其叶子结点必在第()层上。
(A)、k-1(B)、k(C)、k-1和k(D)、1至k
6)具有60个结点的二叉树,其叶子结点有12个,则度过1的结点数为()
(A)、11(B)、13(C)、48(D)、37
7)栈和队列的共同特点是()。
A.只允许在端点处插入和删除元素
B.都是先进后出
C.都是先进先出
D.没有共同点
8)用链接方式存储的队列,在进行插入运算时().
A.仅修改头指针 B.头、尾指针都要修改
C.仅修改尾指针D.头、尾指针可能都要修改
9)以下数据结构中哪一个是非线性结构?
()
A.队列 B.栈C.线性表 D.二叉树
10)树最适合用来表示()。
A.有序数据元素B.无序数据元素
C.元素之间具有分支层次关系的数据D.元素之间无联系的数据
11)二叉树的第k层的结点数最多为().
A.2k-1B.2K+1C.2K-1 D.2k-1
12) 数据的最小单位是()。
A.数据项B.数据类型C.数据元素D.数据变量
13)在数据结构中,从逻辑上可以把数据结构分为()。
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
14)以下说法正确的是()。
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
15)在以下的叙述中,正确的是()。
A.线性表的顺序存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
16)需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
17)若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表
C.双链表 D.带头结点的双循环链表
18)在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是()。
A.p->next=q;q->prior=p;p->next->prior=q;q->next=q;
B.p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;
C.q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;
D.q->next=p->next;q->prior=p;p->next=q;p->next=q;
19)顺序表中,插入一个元素所需移动的元素平均数是()。
A.(n-1)/2B.nC.n+1D.(n+1)/2
20)在表长为n的顺序表中,当在任何位置删除一个元素的概率相同时,删除一个元素所需移动的平均个数为()。
A.(n-1)/2B.n/2C.(n+1)/2D.n
21)在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next==head,则()。
A.p指向头结点 B.p指向尾结点
C.p的直接后继是头结点D.p的直接后继是尾结点
22)一个栈的输入序列为:
1,2,3,4,则栈的不可能输出的序列是()。
A.1243B.2134C.1432D.4312
23)单链表中,增加一个头结点的目的是为了()。
A.使单链表至少有一个结点
B.标识表结点中首结点的位置
C.方便运算的实现
D.说明单链表是线性表的链式存储
24)循环队列的队头和队尾指针分别为front和rear,则判断循环队列为空的条件是()。
A.front==rearB.front==0C.rear==0D.front=rear+1
25)设输入序列1、2、3、…、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是()。
A.n-iB.n-1-iC.n+l-iD.不能确定
26)与线性表相比,串的插入和删除操作的特点是()。
A.通常以串整体作为操作对象B.需要更多的辅助空间
C.算法的时间复杂度较高D.涉及移动的元素更多
27)对一些特殊矩阵采用压缩存储的目的主要是为了()。
A.表达变得简单B.对矩阵元素的存取变得简单
C.去掉矩阵中的多余元素D.减少不必要的存储空间的开销
28)设二维数组A[1..m,1..n](即m行n列)按行存储在数组B[1..m*n]中,则二维数组元素A[i,j],在一维数组B中的下标为()。
A.(i-1)*n+jB.(i-1)*n+j-1
C.i*(j-1)D.j*m+i-1
29)树最适合用来表示()。
A.有序数据元素B.无序数据元素
C.元素之间具有分支层次关系的数据D.元素之间无联系的数据
30)设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。
A.9B.10C.11D.12
31)将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为()。
A.98 B.99C.50D.48
32)设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。
A.log2n+1B.log2n-1C.log2nD.log2(n+1)
33)设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。
A.25B.10C.7D.1
34)一趟排序结束后不一定能够选出一个元素放在其最终位置上的是()。
A.堆排序B.冒泡排序C.快速排序D.希尔排序
35)设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过()次比较。
A.1B.2C.3D.4
36)数据结构在计算机内存中的表示是指()。
A.数据的存储结构 B.数据结构
C.数据的逻辑结构 D.数据元素之间的关系
37)计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、()等5个特性。
A. 可执行性、可移植性和可扩充性
B. 可执行性、有穷性和确定性
C. 确定性、有穷性和稳定性
D. 易读性、稳定性和确定性
38)链表不具备的特点是()。
A.可随机访问任一结点 B.插入删除不需要移动元素
C.不必事先估计存储空间 D.所需空间与其长度成正比
39)非空的循环单链表head的尾结点(由p所指向)满足()。
A.p->next==NULL B.p==NULL
C.p->next==head D.p==head
40)在一个长度为n的顺序表中,在第i个元素之前插入一个新元素时,需向后移动()个元素。
A.n-iB.n-i+1C.n-i-1D.i
41)在线性表的下列存储结构中,读取元素花费的时间最少的是()。
A.单链表B.双链表C.循环链表D.顺序表
42)已知指针p和q分别指向某单链表中第一个结点和最后一个结点。
假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。
A.q->next=s->next;s->next=p;
B.s->next=p;q->next=s->next;
C.p->next=s->next;s->next=q;
D.s->next=q;p->next=s->next;
43)在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行()。
A.s->next=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;
44)判断一个循环队列Q(最多n个元素)为满的条件是()。
A.Q->rear==Q->frontB.Q->rear==Q->front+1
C.Q->front==(Q->rear+1)%nD.Q->front==(Q->rear-1)%n
45)若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0,3。
当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。
A.1和5B.2和4C.4和2D.5和1
46)一个顺序栈S,其栈顶指针为top,则将元素e入栈的操作是()。
A.*S->top=e;S->top++;B.S->top++;*S->top=e;
C.*S->top=e;D.S->top=e;
47)函数substr(“DATASTRUCTURE”,5,9)的返回值为()。
A.“STRUCTURE”B.“DATA”
C.“ASTRUCTUR”D.“DATASTRUCTURE”
48)数组A[0..5,0..6]的每个元素占5个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5][5]的地址是()。
A.1175B.1180C.1205D.1210
49)将一个A[15][15]的下三角矩阵(第一个元素为A[0][0]),按行优先存入一维数组B[120]中,A 中元素A[6][5] 在B 数组中的位置K 为()。
A.19 B.26 C.21 D.15
50)设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B[1,n(n-1)/2]中,对下三角部分中任一元素ai,j(i>=j),在一维数组B的下标位置k的值是()。
A.i(i-1)/2+j-1B.i(i-1)/2+j
C.i(i+1)/2+j-1D.i(i+1)/2+j
51)设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为()。
A.13 B.33C.18D.40
52)假定在一棵二叉树中,度为2的结点数为15,度为1的结点数为30,则叶子结点数为()个。
A.15B.16C.17D.47
53)对某二叉树进行先序遍历的结果为ABDEFC,中序遍历的结果为DBFEAC,则后序遍历的结果是()。
A.DBFEACB.DFEBCA
C.BDFECAD.BDEFAC
填空题:
1)线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
2)线性表的逻辑结构是线性结构,其所含元素的个数称为线性表的长度。
3)设单链表的结点结构为(data,next)。
已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:
q->next=p->nextp->next=q。
4)一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为:
(rear-front+M)%M。
5)两个串相等的充分必要条件是两个串的长度相等且相应位置上的字符相同。
6)二维数组,可以按照以行为主序和以列为主序两种不同的存储方式。
7)设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包括对角线上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与A[0][0]之间有j<=i?
i*(i-1)/2+j-1:
i*(i+1)/2个数据元素。
8)设前序遍历某二叉树的序列为ABCD,中序遍历该二叉树的序列为BADC,则后序遍历该二叉树的序列为BDCA。
9)设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟简单选择排序后的结果为(10,13,27,76,65,97,38)。
10)在快速排序、堆排序、归并排序中,归并排序是稳定的。
11)逻辑结构决定了算法的设计,而存储结构决定了算法的实现。
12)栈和队列都是一种特殊的线性表,栈的插入和删除只能在栈顶进行。
13)通常从四个方面评价算法的质量:
时间正确性、占用内存易读性、复杂度强壮性和准确度高效率。
14)一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为O(n)。
15)假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为9个,树的深度为3,树的度为3。
16)数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
17)写出带头结点的双向循环链表L为空表的条件
L->prior==L->next==L。
18)在一个单链表中删除p所指结点的后继结点时,应执行以下操作:
q=p->next;p->next=q->next。
19)在具有n个元素的循环队列中,队满时具有n-1个元素。
20)已知二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是LOC(A[0][0])+(n*i+j)*k。
21)设有一个顺序共享栈S[0:
n-1],其中第一个栈项指针top1的初值为-1,第二个栈顶指针top2的初值为n,则判断共享栈满的条件是top1+1=top2。
22)设一棵完全二叉树有128个结点,则该完全二叉树的深度为8,有64个叶子结点。
23)设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较7次就可以断定数据元素X是否在查找表中。
计算题
1)如下所示的二叉树,请写出先序、中序、后序遍历的序列。
答:
先序:
FDBACEGIHJ;中序:
ABCDEFGHIJ;后序:
ACBEDHJIGF
2)已知序列(10,18,4,3,6,12,1,9,18,8)请用快速排序写出每一趟排序的结果。
答:
(8,9,4,3,6,1),10,(12,18,18)
(1,6,4,3),8,(9),10,12,(18,18)
1,(3,4,6),8,9,10,12,18,(18)
1,3,(4,6),8,9,10,12,18,18
1,3, 4,6,8,9,10,12,18,18
3)设待排序的记录共7个,排序码分别为8,3,2,5,9,1,6。
(1)用直接插入排序。
试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按
递减顺序排序。
答:
(1)直接插入排序
第一趟(3)[8,3],2,5,9,1,6
第二趟
(2)[8,3,2],5,9,1,6
第三趟(5)[8,5,3,2],9,1,6
第四趟(9)[9,8,5,3,2],1,6
第五趟
(1)[9,8,5,3,2,1],6
第六趟(6)[9,8,6,5,3,2,1]
(2)用直接选择排序。
试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按
递减顺序排序。
答:
(2)直接选择排序(第六趟后仅剩一个元素,是最小的,直接选择排序结束)
第一趟(9)[9],3,2,5,8,1,6
第二趟(8)[9,8],2,5,3,1,6
第三趟(6)[9,8,6],5,3,1,2
第四趟(5)[9,8,6,5],3,1,2
第五趟(3)[9,8,6,5,3],1,2
第六趟
(2)[9,8,6,5,3,2],1
(3)直接插入排序算法和直接选择排序算法的稳定性如何?
答:
直接插入排序是稳定排序,直接选择排序是不稳定排序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习题
![提示](https://static.bdocx.com/images/bang_tan.gif)