数据结构考试试题及答案.docx
- 文档编号:28896188
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:20
- 大小:27.68KB
数据结构考试试题及答案.docx
《数据结构考试试题及答案.docx》由会员分享,可在线阅读,更多相关《数据结构考试试题及答案.docx(20页珍藏版)》请在冰豆网上搜索。
数据结构考试试题及答案
数据结构考试试题及答案
【篇一:
数据结构试题及答案】
数据结构试卷
(二)..................5数据结构试卷(三)..................7数据结构试卷(四)..................9数据结构试卷(五).................12数据结构试卷(六).................15数据结构试卷(七).................17数据结构试卷(八).................19数据结构试卷(九).................21数据结构试卷(十).................24数据结构试卷
(一)参考答案........27
数据结构试卷
(二)参考答案........28数据结构试卷(三)参考答案........29数据结构试卷(四)参考答案........31数据结构试卷(五)参考答案........33数据结构试卷(六)参考答案........34数据结构试卷(七)参考答案........37数据结构试卷(八)参考答案........38数据结构试卷(九)参考答案........39数据结构试卷(十)参考答案........40
数据结构试卷
(一)
一、单选题(每题2分,共20分)
1.栈和队列的共同特点是(a)。
a.只允许在端点处插入和删除元素b.都是先进后出c.都是先进先出d.没有共同点
2.用链接方式存储的队列,在进行插入运算时(d).
a.仅修改头指针b.头、尾指针都要修改c.仅修改尾指针d.头、尾指针可能都要修改
3.以下数据结构中哪一个是非线性结构?
(d)
a.队列b.栈c.线性表d.二叉树
4.设有一个二维数组a[m][n],假设a[0][0]存放位置在644(10),a[2][2]存放位置在676(10),每个元素占一个空间,问a[3][3](10)存放在什么位置?
脚注(10)表示用10进制表示。
c
a.688b.678c.692d.696
5.树最适合用来表示(c)。
a.有序数据元素b.无序数据元素
c.元素之间具有分支层次关系的数据d.元素之间无联系的数据6.二叉树的第k层的结点数最多为(d).
kk-1
a.2-1b.2k+1c.2k-1d.2
7.若有18个元素的有序表存放在一维数组a[19]中,第一个元素放a[1]中,现进行二分查找,则查找a[3]的比较序列的下标依次为(cd)
a.1,2,3b.9,5,2,3c.9,5,3d.9,4,2,3
8.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为ca.o
(1)b.o(n)c.o(1og2n)d.o(n2)
9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用h(k)=k%9作为散列函数,则散列地址为1的元素有(cd)个,
a.1b.2c.3d.4
10.设有6个结点的无向图,该图至少应有(a)条边才能确保是一个连通图。
a.5b.6c.7d.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:
____时间正确性_____、____占用内存_易读性____、
____复杂度__强壮性___和_____准确度_高效率___。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为___30(n)_____。
3.假定一棵树的广义表表示为a(c,d(e,f,g),h(i,j)),则树中所含的结点数
为_____9_____个,树的深度为_____3______,树的度为____2_____。
4.后缀算式923+-102/-的值为____3__-1____。
中缀算式(3+4x)-2y/3对应的后缀算
式为______34x*+2y*/-_________________________。
5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指
针。
在这种存储结构中,n个结点的二叉树共有____n_2n___个指针域,其中有_____n-1___个指针域是存放了地址,有________3__n+1______个指针是空指针。
6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点
分别有___e+1_e___个和____e+1__2e__个。
7.aov网是一种________有向无回路___________的图。
8.在一个具有n个顶点的无向完全图中,包含有____n-1_n(n-1)/2___条边,在一个具有n
个顶点的有向完全图中,包含有____n-1___n(n-1)_条边。
9.假定一个线性表为(12,23,74,55,63,40),若按key%4条件进行划分,使得同一余数的元
素成为一个子表,则得到的四个子表分别为___________(12,40)_________________、_______(23,63,55)________、_______(74)________________和_________()_________________。
10.向一棵b_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度
______增加1____。
1.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为___0(n/2)
___o(log2n)__,整个堆排序过程的时间复杂度为__0
(1)__o(nlog2n)____。
11.在快速排序、堆排序、归并排序中,____堆排序__归并排序___排序是稳定的。
三、计算题(每题6分,共24分)
1.在如下数组a中链接存储了一个线性表,表头指针为a[0].next,试写出该线性表。
datanext
线性表为:
(78,50,40,60,34,90)
2.
请画出下图的邻接矩阵和邻接表。
1.邻接矩阵:
?
0?
1?
?
1?
?
1?
?
0
1110?
0101?
?
1011?
?
0101?
1110?
?
3.已知一个图的顶点集v和边集e分别为:
v={1,2,3,4,5,6,7};e={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,
(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};
用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。
(1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)20
4.画出向小根堆中加入数据4,2,5,8,3时,每加入一个数据后堆的变化。
四、阅读算法(每题7分,共14分)
1.linklistmynote(linklistl)
{//l是不带头结点的单链表的头指针if(ll-next){
q=l;l=l-next;p=l;s1:
while(p-next)p=p-next;s2:
p-next=q;q-next=null;
}
returnl;}
请回答下列问题:
(1)说明语句s1的功能;判断p的下一节点是否为空,如不为空p则指向下一节点查询链表的尾节点
(2)说明语句组s2的功能;使p的下一节点赋值给q,并令q的下一节点为空指针。
将第一个节点链接到链表的尾部,作为新的尾节点
(3)设链表表示的线性表为(a1,a2,?
an),写出算法执行后的返回值所表示的线性表。
a2,a3,?
an,a1
2.voidabc(btnode*bt){
ifbt{
abc(bt-left);abc(bt-right);coutbt-data;}}
该算法的功能是:
判断是否为满二叉树递归的后序遍历链式存储的二叉树五、算法填空(共8分)
二叉搜索树的查找——递归算法:
boolfind(btreenode*bst,elemtypeitem)
{
if(bst==null)
returnfalse;//查找失败else{
if(item==bst-data){
item=bst-data;//查找成功return____item__true_____;}elseif(itembst-data)
returnfind(______bst-data____bst-left____,item);elsereturnfind(_______item____bst-right____,item);}//if}
六、编写算法(共8分)
统计出单链表hl中结点的值等于给定值x的结点数。
intcountx(lnode*hl,elemtypex){intcount;node*head,*p;head=hl;p=head-next;
if(head-data!
=null){
while(p-next){
if(p-data==x)count++;}}}
structnodehl{
elemtypedata;structnode*next;}node;
intcountx(lnode*hl,elemtypex)
{inti=0;lnode*p=hl;//i为计数器while(p!
=null)
{if(p-data==x)i++;p=p-next;
}//while,出循环时i中的值即为x结点个数returni;}//countx
数据结构试卷
(二)
一、选择题(24分)
1.下面关于线性表的叙述错误的是()。
(a)线性表采用顺序存储必须占用一片连续的存储空间(b)线性表采用链式存储不必占用一片连续的存储空间(c)线性表采用链式存储便于插入和删除操作的实现(d)线性表采用顺序存储便于插入和删除操作的实现
2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。
(a)2m-1(b)2m(c)2m+1(d)4m
3.设顺序循环队列q[0:
m-1]的头指针和尾指针分别为f和r,头指针f总是指向队头元素的前一位置,尾指针r总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。
(a)r-f(b)f-r(c)(r-f+m)%m(d)(f-r+m)%m
4.设某棵二叉树的中序遍历序列为abcd,前序遍历序列为cabd,则后序遍历该二叉树得到序列为()。
(a)badc(b)bcda(c)cdab(d)cbda5.设某完全无向图中有n个顶点,则该完全无向图中有()条边。
22
(a)n(n-1)/2(b)n(n-1)(c)n(d)n-16.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。
(a)9(b)10(c)11(d)12
7.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。
(a)n-1(b)n(c)n+1(d)2n-1
8.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。
(a)2,3,5,8,6(b)3,2,5,8,6(c)3,2,5,6,8(d)2,3,6,5,8
二、填空题(24分)
1.为了能有效地应用hash查找技术,必须解决的两个问题是____________________和
__________________________。
2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句。
typedefstruct{ints[100];inttop;}sqstack;voidpush(sqstackstack,intx){
if(stack.top==m-1)printf(“overflow”);
else{____________________;_________________;}}
3.中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。
4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。
5.设某棵二叉树中度数为0的结点数为n0,度数为1的结点数为n1,则该二叉树中度数为
2的结点数为_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域。
【篇二:
数据结构试题库集及答案】
>第一章概论
一、选择题
1、研究数据结构就是研究(d)。
a.数据的逻辑结构b.数据的存储结构
c.数据的逻辑结构和存储结构d.数据的逻辑结构、存储结构及其基本操作
2、算法分析的两个主要方面是(a)。
a.空间复杂度和时间复杂度b.正确性和简单性
c.可读性和文档性d.数据复杂性和程序复杂性
3、具有线性结构的数据结构是(d)。
a.图b.树c.广义表d.栈
4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(b)等5个特性。
a.可执行性、可移植性和可扩充性b.可执行性、有穷性和确定性
c.确定性、有穷性和稳定性d.易读性、稳定性和确定性
5、下面程序段的时间复杂度是(c)。
for(i=0;im;i++)
for(j=0;jn;j++)
a[i][j]=i*j;2a.o(m)b.o(n2)c.o(m*n)
d.o(m+n)
6、算法是(d)。
a.计算机程序b.解决问题的计算方法c.排序算法
d.解决问题的有限运算序列
7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示(c)。
2a.o(n)b.o(nlog2n)c.o(n)d.o(log2n)
8、下面程序段的时间复杂度为(c)。
i=1;
while(i=n)
i=i*3;
a.o(n)b.o(3n)c.o(log3n)d.o(n3)
9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。
a.结构b.关系c.运算d.算法
10、下面程序段的时间复杂度是()。
i=s=0;
while(sn){
i++;s+=i;
}
a.o(n)b.o(n2)c.o(log2n)d.o(n3)
11、抽象数据类型的三个组成部分分别为()。
a.数据对象、数据关系和基本操作b.数据元素、逻辑结构和存储结构
c.数据项、数据元素和数据类型d.数据元素、数据结构和数据类型
12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。
a.正确性算法应能正确地实现预定的功能
b.易读性算法应易于阅读和理解,以便调试、修改和扩充
c.健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果
d.高效性即达到所需要的时间性能
13、下列程序段的时间复杂度为(b)。
x=n;y=0;
while(x=(y+1)*(y+1))
y=y+1;b.o(n)c.o
(1)d.o(n2)a.o(n)
二、填空题
1、程序段“i=1;while(i=n)i=i*2;”的时间复杂度为。
2、数据结构的四种基本类型中,树形结构的元素是一对多关系。
三、综合题
1、将数量级o
(1),o(n),o(n2),o(n3),o(nlog2n),o(log2n),o(2n)按增长率由小到大排序。
23n答案:
o
(1)o(log2n)o(n)o(nlog2n)o(n)o(n)o
(2)
一、填空题
1.数据结构被形式地定义为(d,r),其中d是的有限集合,r是d上的有限集合。
2.数据结构包括数据的、数据的和数据的这三个方面的内容。
3.数据结构按逻辑结构可分为两大类,它们分别是和。
4.线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在多对多关系。
5.在线性结构中,第一个结点前驱结点,其余每个结点有且只有结点没有后续结点,其余每个结点有且只有1个后续结点。
6.个前驱结点;叶子结点没有个前驱结点;最后一个续结点,其余每个结点的后续结点数可以任意多个。
7.在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
8.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引、散列。
9.数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
10.一个算法的效率可分为效率和效率。
11.任何一个c程序都由和若干个被调用的其它函数组成。
二、单项选择题
(b)1.非线性结构是数据元素之间存在一种:
a)一对多关系b)多对多关系c)多对一关系d)一对一关系
(c)2.数据结构中,与所使用的计算机无关的是数据的结构;
a)存储b)物理c)逻辑d)物理和存储
(c)3.算法分析的目的是:
a)找出数据结构的合理性b)研究算法中的输入和输出的关系
c)分析算法的效率以求改进d)分析算法的易懂性和文档性
()4.算法分析的两个主要方面5是:
a)空间复杂性和时间复杂性b)正确性和简明性
c)可读性和文档性d)数据复杂性和程序复杂性
(c)5.计算机算法指的是:
a)计算方法b)排序方法c)解决问题的有限运算序列d)调度方法
(b)6.计算机算法必须具备输入、输出和等5个特性。
a)可行性、可移植性和可扩充性b)可行性、确定性和有穷性
c)确定性、有穷性和稳定性d)易读性、稳定性和安全性
三、简答题
1.数据结构和数据类型两个概念之间有区别吗?
数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。
2.简述线性结构与非线性结构的不同点。
答:
线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是多对多的。
四、分析下面各程序段的时间复杂度
1.for(i=0;in;i++)for(j=0;jm;j++)a[i][j]=0;
3.x=0;
for(i=1;in;i++)for(j=1;j=n-i;j++)x++;
2.s=0;for(i=0;in;i++)for(j=0;jn;j++)s+=b[i][j];sum=s;4.i=1;while(i=n)i=i*3;
五、设有数据逻辑结构s=(d,r),试按各小题所给条件画出这些逻辑结构的图示,并确定其是哪种逻辑结构。
1.d={d1,d2,d3,d4}r={(d1,d2),(d2,d3),(d3,d4)}
2.d={d1,d2,?
d9}
r={(d1,d2),(d1,d3),(d3,d4),(d3,d6),(d6,d8),(d4,d5),(d6,d7),(d8,d9)}
3.d={d1,d2,?
d9}
r={(d1,d3),(d1,d8),(d2,d3),(d2,d4),(d2,d5),(d3,d9),(d5,d6),(d8,d9),(d9,d7),(d4,d7),(d4,d6)}
第二章线性表
一、选择题
1、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度()。
a.o(log2n)b.o
(1)c.o(n)2d.o(n)
2、若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用()存储方式最节省时间。
a.顺序表b.单链表c.双链表d.单循环链表
3、具有线性结构的数据结构是()。
a.图b.树c.广义表d.栈
4、在一个长度为n的顺序表中,在第i个元素之前插入一个新元素时,需向后移动()个元素。
a.n-ib.n-i+1c.n-i-1d.i
5、非空的循环单链表head的尾结点p满足()。
a.p-next==headb.p-next==null
c.p==nulld.p==head
6、链表不具有的特点是()。
a.可随机访问任一元素b.插入删除不需要移动元素
c.不必事先估计存储空间d.所需空间与线性表长度成正比
7、在双向循环链表中,在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;
8、线性表采用链式存储时,结点的存储地址()。
a.必须是连续的b.必须是不连续的
c.连续与否均可d.和头结点的存储地址相连续
9、在一个长度为n的顺序表中删除第i个元素,需要向前移动()个元素。
a.n-ib.n-i+1c.n-i-1d.i+1
10、线性表是n个()的有限序列。
a.表元素b.字符c.数据元素d.数据项
11、从表中任一结点出发,都能扫描整个表的是()。
a.单链表b.顺序表c.循环链表d.静态链表
12、在具有n个结点的单链表上查找值为x的元素时,其时间复杂度为()。
2a.o(n)b.o
(1)c.o(n)d.o(n-1)
13、线性表l=(a1,a2,……,an),下列说法正确的是()。
a.每个元素都有一个直接前驱和一个直接后继
b.线性表中至少要有一个元素
c.表中诸元素的排列顺序必须是由小到大或由大到小
d.除第一个和最后一个元素外,其余每个元素都由一个且仅有一个直接前驱和直接后继
14、一个顺序表的第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的存储地址是()。
a.98b.100c.102d.106
15、在线性表的下列存储结构中,读取元素花费的时间最少的是()。
a.单链表b.双链表c.循环链表d.顺序表
16、在一个单链表中,若删除p所指向结点的后续结点,则执行()。
a.p-next=p-next-next;
b.p=p-next;p-next=p-next-next;
c.p=p-ne
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 考试 试题 答案