模拟试题二答案.docx
《模拟试题二答案.docx》由会员分享,可在线阅读,更多相关《模拟试题二答案.docx(9页珍藏版)》请在冰豆网上搜索。
模拟试题二答案
北京邮电大学远程教育
计算机科学与技术专业三年级(高起本)
《数据结构》期中作业
一、单项选择题
1、栈结构通常采用的两种存储结构是A。
A、线性存储结构和链表存储结构;B、散列方式和索引方式;
C、链表存储结构和数组;D、线性存储结构和非线性存储结构。
2、判定一个栈ST(最多元素为m0)为栈满的条件是D。
A、ST→top!
=0;B、ST→top==0;
C、ST→top!
=m0-1;D、ST→top==m0-1
3、判定一个队列Qu(最多元素为m0)为空的条件是D。
A、Qu→rear-Qu→front==m0;B、Qu→rear-Qu→front-1==m0;
C、Qu→front==Qu→rear;D、Qu→front==Qu→rear+1。
4、非空的循环单链表head的尾结点(由P所指向)满足C。
A、P→next==NULL;B、P==NULL;
C、P→next==head;D、P==head
5、从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行D。
A、x=HS;HS=HS→next;B、x=HS→data;
C、HS=HS→next;x=HS→data;D、x=HS→data;HS=HS→next。
6、常对数组进行的两种基本操作是C。
A、建立与删除;B、索引和修改;
C、查找和修改;D、查找和索引。
7、广义表((a),a)的表头是D,表尾是A。
A、a;B、b;C、(a);D、((a))。
8、二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法A。
A、正确;B、错误。
9、计算递归函数如不用递归过程通常借助的数据结构是D。
A、线性表;B、双向队列;C、树;D、栈。
10、就平均性能而言,最快的排序方法是C。
A、冒泡排序;B、希尔排序;
C、快速排序;D、插入排序。
11、若串S=‘goodstudents’,其子串的数目是D。
A、12;B、13;C、78;D、79。
12、对线性表进行折半查找最方便的存储结构是A。
A、顺序表;B、有序的顺序表;C、链表;D、有序的链表。
13、深度为5的二叉树其结点数最多为C。
A、16;B、30;C、31;D、32。
14、如果T2是由有序树T转换来的二叉树,则T中结点的后序排列是T2结点的。
A、先序排列;B、中序排列;
C、后序排列;D、层序排列。
15、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为C。
A、4;B、5;C、6;D、7。
16、如下图所示二叉树的中序遍历序列是B。
A、abcdgef;B、dfebagc;C、dbaefcg;D、defbagc。
17采用邻接表存储的图的广度优先遍历算法类似于二叉树的D。
A、先序遍历;B、中序遍历;
C、后序遍历;D、按层遍历。
18、下面程序段的时间复杂性的量级为D。
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){
c[i][j]=0;
for(k=1;k<=w;k++)
c[i][j]+=a[i][k]*b[k][j]
}
A、O(i*j*k);B、O(n*m*k);
C、O(n*j*k);D、O(n*m*w)。
19、在一个长度为n的线性表中,删除值为x的元素时需要比较元素和移动元素的总次数为C。
A、(n+1)/2;B、n/2;
C、n;D、n+1。
20、利用3,6,8,12,5,7这六个值作为叶子结点的权,生成一棵哈夫曼树,该树的深度为B。
A、3;B、4;C、5;D、6
21、一棵二叉树的广义表表示为a(b(c,d),e(,f(g))),则得到的层次遍历序列为D。
A、a,b,c,d,e,f,g;B、c,b,d,a,e,g,f;
C、c,d,b,g,f,e,a;D、a,b,e,c,d,f,g。
22、对于一个无向图,下面A的说法是正确的。
A、每个顶点的入度等于出度;B、每个顶点的度等于其入度与出度之和;
C、每个顶点的入度为O;D、每个顶点的出度为O。
23、若一个图的边集为{<1,2>,<1,4>,<2,5>,<3,1>,<3,5>,<4,3>},则从顶点1开始对该图进行深度优先搜索,得到的顶点序列可能为C。
A、1,2,5,4,3;B、1,2,3,4,5;
C、1,2,5,3,4;D、1,4,3,2,5。
24、若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对该图进行广度优先搜索,得到的顶点序列可能是A。
A、A,B,C,D,E,F;B、A,B,C,F,D,E;
C、A,B,D,C,E,F;D、A,C,B,F,D,E。
25、已知一个有向图的边集为{,,,,,},则由该图产生的一种可能的拓扑序列为B。
A、a,b,c,d,e;B、a,b,d,e,b;
C、a,c,b,e,d;D、a,c,d,b,e。
26、若一个图中包含有k个连通分量,若按照深度优先搜索的方法访问所有顶点,则必须调用C次深度优先搜索遍历的算法。
A、k;B、1;C、k-1;D、k+1
27、在一个具有n个顶点的有向图中,若所有顶点的出度数之和为S,则所有顶点的度数之和D。
A、S;B、S-1;C、S+1;D、2S
28、对长度为3的顺序表进行查找,若查找第一个元素的概率为1/2,查找第二个元素的概率为1/3,查找第三个元素的概率为1/6,则查找任一元素的平均查找长度为A。
A、5/3;B、2;C、7/3;D、4/3。
29、若要对1000个元素排序,要求既快又节省存储空间,则最好采用D方法。
A、直接插入排序;B、归并排序;
C、堆排序;D、快速排序。
30、假定对元素序列(7,3,5,9,1,12)进行堆排序,并且采用小根堆,则由初始数据构成的初始堆为B。
A、1,3,5,7,9,12;B、1,3,5,9,7,12;
C、1,5,3,7,9,12;D、1,5,3,9,12,7。
二、填空题
1、数据的逻辑结构被分为_,,和四种。
2、数据的存储结构被分为,,和四种。
3、从一维数组a[n]中顺序查找出一个最大值元素的平均时间复杂度为,读取一个二维数组b[m][n]中任一元素的时间复杂度为。
4、线性表的链接存储比顺序存储最有利于进行操作。
5、线性表的两种存储结构分别为和。
6、对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂性为,在表尾插入元素的时间复杂性为。
7、在以HL为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为和。
8、在一个带头结点的循环单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同?
。
9、在一个用一维数组a[N]表示的顺序栈中,该栈所含元素的个数最少为_个,最多为个。
10、一个顺序栈存储于一维数组a[0…M-1]中,栈顶指针用top表示,当栈顶指针等于时,则为空栈;栈顶指针等于时,则为满栈。
11、设元素a,b,c,d依次进栈,若要在输出端得到序列cbda,则应进行的操作序列为push(s,a),push(s,b),push(s,c),,,,
pop(s),pop(s)。
12、有一个8╳8的下三角矩阵A,若采用行序为主序进行顺序存储于一维数组a[1…N]中,则N的值为。
13、假定一棵树的广义表表示为A(B(C,D(E,F,G),H(I,J))),则树中所含的结点数为个,树的深度为,树的度为。
14、在一棵二叉树中,假定双分支结点数为5个,单分支结点数为6个,则叶子结点数为个。
15、假定一棵二叉树广义表表示为a(b(c),d(e,f)),则对它进行的先序遍历结果为,中序遍历结果为,后序遍历结果为,按层遍历结果为。
16、若由3,6,8,12,10作为叶子结点的值生成一棵哈夫曼树,则该树的高度为,带权路径长度为。
17、在一个连通图中存在着个连通分量。
18、图中的一条路径长度为k,该路径所含的顶点数为。
19、若一个连通图中每个边上的权值均不同,则得到的最小生成树是的。
20、以二分查找方法在一个查找表上进行查找时,该查找表必须组织成存储的表.
三、编写一个函数将一个向量A(有n个元素且任何元素均不为0)分拆成两个向量,使A中大于0的元素存放在B中,小于0的元素存放在C中。
四、有一个单链表L(至少有1个结点),其头结点指针为head,编写一个函数将L逆置,即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,如此等等。
五、若h是采用单链表存储的串,编写一个函数将其中的所有c替换成s字符。
六、有如下递归函数:
intdunno(intm)
{
intvalue;
if(m==0)value=3;
elsevalue=dunno(m-1)+5;
return(value);
}
执行语句printf(“%d\n”,dunno(3));的结果是:
七、由下图所示的二叉树,回答下列问题:
(1)其中序遍历序列为①。
(2)其前序遍历序列为②。
(3)其后序遍历序列为③。
(4)该二叉树的中序线索二叉树为④。
(5)该二叉树对应的森林为⑤。
八、使用普里姆算法构造出图G的一棵最小生成树。
615
55
3642
6
图G