数据结构模拟试题一及答案.docx
《数据结构模拟试题一及答案.docx》由会员分享,可在线阅读,更多相关《数据结构模拟试题一及答案.docx(4页珍藏版)》请在冰豆网上搜索。
数据结构模拟试题一
一、判断题(每小题1分,共15分)
1.计算机程序处理的对象可分为数据和非数据两大类。
2.全体自然数按大小关系排成的序列是一个线性表。
3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。
4.顺序栈是一种规定了存储方法的栈。
5.树形结构中的每个结点都有一个前驱。
6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。
7.若某顶点是有向图的根,则该顶点的入度一定是零。
8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。
9.用一维数组表示矩阵可以节省存储空间。
10.广义表的长度与广义表中含有多少个原子元素有关。
11.分块查找的效率与线性表被分成多少块有关。
12.散列表的负载因子等于存入散列表中的结点个数。
13.在起泡排序过程中,某些元素可能会向相反的方向移动。
14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。
15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。
二、填空题(每空1分,共15分)
1.顺序表是一种_____________线性表。
2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。
3.栈和队列的区别在于________的不同。
4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。
5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域为空的结点。
6.n个顶点的有根有向图中至少有___条边,至多有___条边。
7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。
8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是_____。
9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。
10.在高度为3的6阶B-树中,至少有___个关键字,至多有___个关键字。
三、选择题(每题2分,共30分)
1.计算机所处理的数据一般具有某种内在联系性,这是指________。
A.元素和元素之间存在某种关系B.数据和数据之间存在某种关系
C.元素内部具有某种结构D.数据项和数据项之间存在某种关系
2.假设顺序表目前有4个元素,第i个元素放在R[i]中,1≤i≤4。
若把新插入元素存入R[6],则________。
A.会产生运行错误B.R[1]~R[6]不构成一个顺序表
C.顺序表的长度大于顺序表元素个数,会降低存储空间利用率
D.顺序表元素序号和数组元素下标不一致,会给使用带来麻烦
3.设H是不带表头结点循环单向链表的表头指针,P是和H同类型的变量。
当P指向链表最后一个结点时,_________。
A.P所指结点指针字段的值为空B.P的值与H的值相等
C.P所指结点的地址与H的值相等D.P所指结点指针字段的值与H的值相等
4.栈的定义不涉及数据的__________。
A.逻辑结构B.存储结构C.运算D.逻辑结构和存储结构
5.设5个元素进栈的顺序是1,2,3,4,5,则出栈的顺序有可能是___________。
A.2,4,1,3,5B.3,4,1,5,2C.3,2,4,1,5D.4,1,3,2,5
6.若某棵二叉树结点的前序序列和中序序列相同,则该二叉树_________。
A.只有一个结点B.每个结点都没有左孩子C.每个结点都没有右孩子D.不存在
7.对于一棵具有n个结点,度为3的树来说,____________。
A.树的高度至多是n-3B.树的高度至多是n-2C.树的最低高度是┏log3(n+1)┓
D.至少在某一层上正好有3个结点
8.n个顶点的有向图如果可以进行拓扑排序,则可以断定该有向a
b
g
c
e
h
f
d
图__________。
A.含n个强连通分量B.有唯一的入度为0的顶点C.有多个出度为0的顶点
D.是一个有根有向图
9.特殊矩阵用行优先顺序表表示,_____________
A.简化了矩阵元素之间的逻辑关系B.便于按行处理矩阵元素
C.无法根据行列号计算矩阵元素的存储地址D.可以节省存储空间
10.对一个非空的广义表来说,______________。
A.可能不含任何原子元素B.至少含一个原子元素
C.其长度不小于其中任何一个子表的长度D.至少含一个非空的子表元素
11.在有序表(2,4,6,8,10,12,14,16,18,20)上用折半查找方法查找13,依次被比较的是___________。
A.10,16,12,14B.10,16,12C.12,16,14D.10,16,12,13
12.含14个结点的平衡二叉排序树,其最大深度是____。
A.4B.5C.6D.7
13.如果元素R1和R2有相同的排序码,并且进行归并排序前,R1在R2的前面,则当排序结束后,___________。
A.R1有可能在R2的后面B.R1一定在R2的后面
C.R1一定在R2的前面D.选择R1或R2中的一个留在线性表中
14.下面4个序列中,只有___满足堆的定义。
A.13,27,49,76,76,38,85,97B.76,38,27,49,76,85,13,97
C.13,76,49,76,27,38,85,97D.13,27,38,76,49,85,76,97
15.下面4种排序方法中,属于不稳定的排序方法是_________排序和_________排序。
A.快速B.归并C.简单选择D.折半插入
四、图表题
1.已知树结点的前序序列是abcdefgh ,后序序列是cdebfhga,请画出这棵树的逻辑结构图。
2.采用基数排序法,对排序码序列572,586,413,15,724,529,525,608,37,119按从小到大的次序排序,请写出每趟收集后的线性表。
五、算法填空题
假设G是n个顶点的连通无向图的邻接矩阵。
下面的算法可用于对无向图进行深度遍历。
请在空内填入适当内容,将算法补充完整。
Constn=10;
IntG[n][n];
Voidtrav(inti){
Intj,t;
IntM[n],S[n];
Cout<
M[i]=1;//做已访问标记
T=1;s[t]=I;//进栈
Do{
(1)_______________
While
(2)_______________
I++;
If(i>n)(3)_______
Else{
Cout<
(4)_______
S[++t]=I;
}
}while(t)
}
六、算法设计题(每小题12分,共24分)
1.假设长度为n的线性表已存放在R[1]~R[n]中,元素类型为整型。
请写一个算法,给每个元素加上一个常数x,若相加后该元素为0,则将该元素从线性表中删除。
2.在一个m行n列的矩阵中,由相邻的并且取值相同的元素所构成的集合称为区域。
例如,在图1所示矩阵中存在5个区域。
设计算法setcolor(x,y,c),算法的功能中将x行y列元素所在区域的所有元素的值改为c。
例如,对图1所示矩阵执行算法调用setcolor(4,3,1),应得结果如图2所示。
3022031221
0020011211
3033031331
3003031131
3300033111
图1图2
数据结构模拟题一参考答案
一.判断题
1、×2、×3、×4、√5、×6、√7、×.8、√9、×10、×11、√12、×13、√14、×.15、×
二.填空题
1.用顺序方法存储的2.m3.运算方法定义4.h2h-15.mn+16.n-1n(n-1)7.1478.6.59.m2m-110.535
三.选择题
1.A2.B3.D4.B5.C6.B7.B8.A9.D10.A11.A12.B13.C14.D15.AC
四.图表题
1.
a
b
g
c
e
h
f
d
2.第一趟:
572,413,724,15,525,586,37,608,529,119
第二趟:
608,413,15,119,724,525,529,37,572,586
第三趟:
15,37,119,413,525,529,572,586,608,724
五.算法填空题:
(1)j=S[t];i=1;
(2)((i<=n)&&((G[j][i]==0||M[i]==1)))
(3)t=t-1;
(4)M[i]=1;
六.算法设计题
1.constn0=100;
intR[n0+1];
intn;
voidadd(){
inti,j;
j=1;
for(i=1;i<=n;i++)
if(R[i]!
=x){
R[j]=R[i]+x;
J=j+1;
}
n=j-1;
}
2.constm=10,n=10,d[4][2]={{1,0},{0,-1},{-1,0},{0,1}};
intG[m+1][n+1];
intc0;
voidpaint(intx,inty,intc){
inti,u,v;
G[x][y]=c;
for(i=0;i<=3;i++){
u=x+d[i][0];
v=y+d[i][1];
if((u>=1)&&(u<=m)&&(v>=1)&&(v<=n)&&(G[u][v]==c0))
paint(u,v,c);
}
}