数据结构导论试题和部分答案Word文档下载推荐.docx
《数据结构导论试题和部分答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构导论试题和部分答案Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
12.三个顶点v1,v2,v3的图的邻接矩阵为
,该图中顶点v3的入度为()A.0B.1C.2D.3
13.顺序存储的表格中有60000个元素,已按关键字值升序排列,假定对每个元素进行查找的概率是相同的,且每个元素的关键字值不相同。
用顺序查找法查找时,平均比较次数约为()A.20000B.30000C.40000D.60000
14.外存储器的主要特点是()
A.容量小和存取速度低B.容量大和存取速度低C.容量大和存取速度高D.容量小和存取速度高
15.在待排数据基本有序的前提下,效率最高的排序算法是()A.直接插入排序B.直接选择排序C.快速排序D.归并排序
二、填空题(本大题共13小题,每小题2分,共26分)
16.数据的不可分割的最小标识单位是______,它通常不具有完整确定的实际意义,或不被当作一个整体对待。
17.运算分为加工型运算和引用型运算,读取操作是______运算。
18.带有头结点的单向循环链表L(L为头指针)中,指针p所指结点为尾结点的条件是______。
19.在双链表中,前趋指针和后继指针分别为prior和next。
若使指针p往后移动两个结点,则需执行语句______。
20.元素s1,s2,s3,s4,s5,s6依次进入顺序栈S,如果6个元素的退栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少为______。
21.稀疏矩阵一般采用的压缩存储方法是______。
22.在一棵树中,______结点没有双亲。
23.一棵具有n个结点的完全二叉树中,从树根起,自上而下、自左至右给所有结点编号。
设根结点编号为1,若编号为i的结点有父结点,那么其父结点的编号为______。
24.二叉树的二叉链表存储结构中判断指针p所指结点为叶子结点的条件是______。
25.边稀疏的无向图采用______存储较省空间。
26.除第一个顶点和最后一个顶点相同外,其余顶点不重复的回路,称为______。
27.二分查找算法的时间复杂度是______。
28.要将序列{51,18,23,68,94,70,73}建成堆,则只需把18与______相互交换。
三、应用题(本大题共5小题,每小题6分,共30分)
29.将题29图所示的一棵二叉树转换成对应的森林。
题29图题31图题32图
30.给定权值{3,9,13,5,7},构造相应的哈夫曼(Huffman)树,并计算其带权路径长度。
31.写出题31图的邻接矩阵和每个顶点的入度与出度。
32.二叉排序树的各结点的值依次为20~28,请在题32图中标出各结点的值。
33.用冒泡排序法对数据序列(55,38,65,97,76,138,27,49)进行排序,写出排序过程中的各趟结果。
四、算法设计题(本大题共2小题,每小题7分,共14分)
34.设线性表A=(a1,a2,…,am),B=(b1,b2,…,bn),试写一个按下列规则合并A,B为线性表C的算法,使得
C=(a1,b1,…,am,bm,bm+1,…,bn)当m≤n时;
或者C=(a1,b1,…,an,bn,an+1,…,am)当m>
n时。
线性表A,B和C均以带头结点的单链表作为存储结构,且C表利用A表和B表中的结点空间构成。
(注意:
单链表的长度值m和n均未显式存储。
)
35.二叉树的二叉链表类型定义如下:
typedefstructbtnode{
datatypedata;
structbtnode*lchild,*rchild;
}bitreptr;
写出后根遍历根指针为t的二叉树的递归算法(voidpostorder(bitreptr*t))。
全国2011年10月数据结构导论试题课程代码:
1.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,元素退栈后即进入队列Q,若6个元素的出队序列是e2,e4,e3,e6,e5,e1,则栈S的容量至少为()A.2B.3C.4D.6
2.设计一个判别表达式中左右括号是否配对出现的算法,采用的最佳数据结构为()
A.线性表的顺序存储结构B.队列C.线性表的链式存储结构D.栈
3.下列程序段的时间复杂度为()
i=0;
s=0;
while(s<
n){i++;
s=s+i;
}
A.O(
)B.O(log2n)C.O(n)D.O(n2)
4.设A是n×
n的对称矩阵,将A的对角线及对角线上方的元素Aij(1≤i,j≤n,i≤j)以列优先顺序存放在一维数组元素B[1]至B[n(n+1)/2]中,则元素Aij(i≤j)在B中的位置为()
A.i(i-l)/2+jB.j(j-l)/2+iC.j(j-l)/2+i-1D.i(i-l)/2+j-1
5.在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是()
A.G中有弧<
Vi,Vj>
B.G中有一条从Vi到Vj的路径C.G中没有弧<
D.G中有一条从Vj到Vi的路径
6.下列序列中,由第一趟快速排序可得到的序列(排序的关键字类型是字符串)是()
A.[da,ax,eb,de,bb]ff[ha,gc]B.[cd,eb,ax,da]ff[ha,gc,bb]
C.[gc,ax,eb,cd,bb]ff[da,ha]D.[ax,bb,cd,da]ff[eb,gc,ha]
7.不稳定的排序方法是()A.直接插入排序B.冒泡排序C.堆排序D.二路归并排序
8.设散列表表长m=14,散列函数为h(k)=k%11,表中已有4个记录,如果用二次探测法处理冲突,关键字为49的记录的存储位置是()
012345678910111213
15
38
61
84
9.若元素1,2,3依次进栈,则退栈不可能出现的次序是()
A.3,2,1B.2,1,3C.3,1,2D.1,3,2
10.直接插入排序的时间复杂度是()A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
11.稀疏矩阵是指()
A.元素少的矩阵B.有少量零元素的矩阵C.有少量非零元素的矩阵D.行数、列数很少的矩阵
12.深度为k(k≥1)的二叉树,结点数最多有()A.2kB.2k-1C.2k-1D.2k-1-1
13.由带权为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为()
14.有n个顶点的有向完全图的弧数为()A.n2B.2nC.n(n-1)D.2n(n+1)
15.图的深度优先搜索类似于二叉树的()A.先根遍历B.中根遍历C.后根遍历D.层次遍历
16.下列程序段的时间复杂度为_________。
for(i=1;
i<
=n;
i++)
for(j=1;
j<
j++)
x++;
17.数据结构中结点按逻辑关系依次排列形成一条“锁链”的结构是_________。
18.在表长为n的顺序表上做删除运算,平均要移动的结点个数为_________。
19.在带有头结点的单循环链表head中,指针p所指结点为尾结点的条件是_________。
20.队列又称为_________的线性表。
21.顺序栈被定义为结构类型,含有两个域:
data和top,则对栈*sq进行初始化的操作是_________。
22.对于任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n2=_________。
23.一棵具有n个结点的二叉树,采用二叉链表存储,则二叉链表中指向孩子结点的指针有_________个。
24.若连通图G的顶点个数为n,则图G的生成树的边数为_________。
25.一个具有n个顶点的无向图的边数最多为_________。
26.中根遍历二叉排序树所得到的结点访问序列是键值的_________序列。
27.冒泡排序的平均时间复杂度为_________。
28.将序列{60,20,23,68,94,70,73}建成堆,则只需把20与_________互相交换。
29.如题29图所示,在栈的输入端元素的输入顺序为A,B,C,D,进栈过程中可以退栈,写出在栈的输出端以A开头和以B开头的所有输出序列。
题29图题30图题31图题32图
30.一棵二叉树如题30图所示,写出该二叉树的先根遍历序列、中根遍历序列和后根遍历序列。
31.将题31图所示的一棵二叉树转换成森林。
32.对于有向无环图:
(1)叙述求拓扑排序算法的基本步骤;
(2)对于题32图,写出它的4个不同的拓扑排序序列。
33.判别以下序列是否为堆。
如果不是,则把它调整为堆。
(1)(100,86,48,73,35,39,42,57,66,21);
(2)(12,70,33,65,24,56,48,92,86,33)。
34.n个结点的完全二叉树按结点编号将值顺序存放在一维数组元素A[1]至A[n]中,试编写算法实现将顺序存储结构转换为二叉链表存储结构,其中根结点由tree指向。
35.试写出冒泡排序算法。
全国2011年1月数据结构导论试题课程代码:
1.在顺序表中查找第i个元素,时间效率最高的算法的时间复杂度为()A.O
(1)B.O(
)C.O(log2n)D.O(n)
2.树形结构中,度为0的结点称为()A.树根B.叶子C.路径D.二叉树
3.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<
V1,V2>
,<
V1,V3>
V1,V4>
V2,V5>
V3,V5>
<
V3,V6>
V4,V6>
V5,V7>
,<
V6,V7>
},则图G的拓扑序列是()
A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V4,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V7
4.有关图中路径的定义,表述正确的是()
A.路径是顶点和相邻顶点偶对构成的边所形成的序列B.路径是不同顶点所形成的序列
C.路径是不同边所形成的序列D.路径是不同顶点和不同边所形成的集合
5.串的长度是指()
A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数
6.组成数据的基本单位是()A.数据项B.数据类型C.数据元素D.数据变量
7.程序段i=n;
x=0;
do{x=x+5*i;
i--;
}while(i>
0);
的时间复杂度为()A.O
(1)B.O(n)C.O(n2)D.O(n3)
8.与串的逻辑结构不同的数据结构是()A.线性表B.栈C.队列D.树
9.二叉树的第i(i≥1)层上所拥有的结点个数最多为()A.2iB.2iC.2i-1D.2i-1
10.设单链表中指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为()
A.p->
next=p->
next->
nextB.p=p->
nextC.p=p->
nextD.p->
next=p
11.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是()
A.堆排序B.冒泡排序C.直接插入排序D.快速排序
12.设字符串S1=″ABCDEFG″,S2=″PQRST″,则运算
S=CONCAT(SUBSTR(S1,2,LENGTH(S2)),SUBSTR(S1,LENGTH(S2),2))
后S的结果为()A.″BCQR″B.″BCDEF″C.″BCDEFG″D.″BCDEFEF″
13.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并且A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则使其平衡的调整方法为()
A.LL型B.LR型C.RL型D.RR型
14.如果结点A有3个兄弟结点,而且B为A的双亲,则B的度为()A.1B.3C.4D.5
15.数据表A中每个元素距其最终位置较近,则最省时间的排序算法是()
A.堆排序B.插入排序C.直接选择排序D.快速排序
16.下列程序段的时间复杂度为___________。
i=1;
while(i<
n)i=i*2;
17.向一个长度为n的顺序表中第i(1≤i≤n)个元素之前插入一个元素时,需向后移动___________个元素。
18.在循环双链表中,删除最后一个结点,其算法的时间复杂度为___________。
19.队列的插入操作在队列的___________部分进行。
20.一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素为___________。
21.一个10阶对称矩阵A,采用行优先顺序压缩存储下三角,a00为第一个元素,其存储地址为1,每个元素占有1个存储地址空间,则a85的地址为___________。
22.设字符串S=″I□AM□A□STUDENT″(其中□表示空格字符),则S的长度为___________。
23.在树形结构中,没有后继的结点是___________结点。
24.一棵深度为n(n>
1)的满二叉树中共有___________个结点。
25.在无向图中,如果从顶点v到顶点v′有路径,则称v和v′是___________。
26.无向完全图G采用___________存储结构较省空间。
27.在顺序查找、二分查找、索引查找和散列查找四种查找方法中,平均查找长度与元素个数没有关系的查找方法是___________。
28.快速排序最好情况下的时间复杂度为___________。
29.稀疏矩阵A如下,写出矩阵A的三元组表及矩阵A的转置矩阵的三元组表。
30.一棵二叉树的前根遍历序列为ABCDEFG,中根遍历序列为CBDAEGF,试构造出该二叉树。
31.下述矩阵表示一个无向连通网,试画出它所表示的连通网及该连通网的最小生成树。
32.给定表(80,90,50,70,75,60,40,100),试按元素在表中的顺序将它们依次插入一棵初始时为空的二叉排序树,画出插入完成后的二叉排序树。
33.试写出一组键值(46,58,15,45,90,18,10,62)应用直接插入排序算法从小到大排序后各趟的结果。
34.试分别写出二叉树的先根遍历和中根遍历的递归算法。
35.试编写以单链表为存储结构实现直接选择排序的算法。
2011年1月全国自考数据结构导论参考答案
2010年10月数据结构导论试题课程代码:
1.下列描述中正确的是()
A.数据元素是数据的最小单位B.数据结构是具有结构的数据对象
C.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合
D.算法和程序原则上没有区别,在讨论数据结构时两者是通用的
2.归并排序的时间复杂度是()A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
3.二分查找的时间复杂度是()A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
4.顺序存储的表中有90000个元素,已按关键字值升序排列,假设对每个元素进行查找的概率相同,且每个元素的关键字值皆不相同,用顺序查找法查找时,需平均比较的次数为()A.25000B.30000C.45000D.90000
5.散列文件是一种()A.顺序文件B.索引文件C.链接文件D.计算寻址文件
6.两个矩阵A:
m×
n,B:
n×
p相乘,其时间复杂度为()A.O(n)B.O(mnp)C.O(n2)D.O(mp)
7.常用于函数调用的数据结构是()A.栈B.队列C.链表D.数组
8.二维数组A[n][m]以列优先顺序存储,数组A中每个元素占用1个字节,A[1][1]为首元素,其地址为0,则元素A[i][j]的地址为()A.(i-1)×
m+(j-1)B.(j-1)×
n+(i-1)C.(j-1)×
n+ID.j×
n+i
9.图的广度优先搜索使用的数据结构是()A.队列B.树C.栈D.集合
10.序列(21,19,37,5,2)经冒泡排序法由小到大排序,在第一次执行交换后所得结果为()
A.(19,21,37,5,2)B.(21,19,5,37,2)C.(21,19,37,2,5)D.(2,21,19,37,5)
11.数据在计算机存储器内表示时,根据结点的关键字直接计算出该结点的存储地址,这种方法称为()
A.索引存储方法B.顺序存储方法C.链式存储方法D.散列存储方法
12.在单链表中,存储每个结点有两个域,一个是数据域,另一个是指针域,指针域指向该结点的()
A.直接前趋B.直接后继C.开始结点D.终端结点
13.在已知头指针的单链表中,要在其尾部插入一新结点,其算法所需的时间复杂度为()
A.O
(1)B.O(log2n)C.O(n)D.O(n2)
14.在链队列中执行入队操作,()
A.需判别队是否空B.需判别队是否满C.限制在链表头p进行D.限制在链表尾p进行
15.一整数序列26,59,77,31,51,11,19,42,以二路归并排序从小到大排序,第一阶段的归并结果为()
A.31,51,11,42,26,77,59,19B.26,59,31,77,11,51,19,42
C.11,19,26,31,42,59,51,77D.26,11,19,31,51,59,77,42
16.下列程序段的时间复杂度为_______。
i=0;
while(s<
n){i++;
s=s+i;
17.数据的存储结构被分为顺序存储结构、_______、散列存储结构和索引存储结构4种。
18.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动_______个元素。
19.在单链表中,插入一个新结点需修改_______个指针。
20.在队列结构中,允许插入的一端称为_______。
21.稀疏矩阵采用的压缩存储方法是_______。
22.向一个栈顶指针为top的链栈中插入一个新结点*p时,应执行p->
next=top和_______操作。
23.有m个叶结点的哈夫曼树所具有的结点数为_______。
24.在一棵具有n个结点的完全二叉树中,从树根起,自上而下、自左至右地给所有结点编号。
设根结点编号为1。
若编号为i的结点有右孩子,那么其右孩子的编号为_______。
25.在一棵树中,_______结点没有前驱结点。
26.一个具有n个顶点的有向完全图的弧数是_______。
27.n个顶点的无向图G用邻接矩阵A[n][n]存储,其中第i列的所有元素之和等于顶点Vi的_______。
28.选择排序的平均时间复杂度为_______。
29.在栈的输入端元素的输入顺序为1,2,3,4,5,6,进栈过程中可以退栈,则退栈时能否排成序列3,2,5,6,4,1和1,5,4,6,2,3,若能,写出进栈、退栈过程,若不能,简述理由。
(用push(x)表示x进栈,pop(x)表示x退栈)
30.已知一棵二叉树的中根遍历序列为CBEDFAGH,后根遍历序列为CEFDBHGA,画出该二叉树。
31.给定表(15,11,8,20,14,13),试按元素在表中的顺序将它们依次插入一棵初始时为空的二叉排序树,画出插入完成后的二叉排序树,并判断该二叉排序树是否为平衡二叉排序树,若为非平衡二叉排序树,将它调整为平衡二叉排序树。
32.如题32图所示无向图,
(1)写出其邻接矩阵;
(2)写出三种以顶点A为起点的深度优先搜索顶点序列。
题32图
33.用冒泡排序法对数据序列(49,38,65,97,76,134,27,49)进行排序,写出排序过程。
并说明冒泡排序是否为稳定排序。
34.编写计算二叉树中叶子结点数目的算法。
35.开散列表的类型定义如下:
typedefstructtagnode
{keytypekey;
structtagnode*next;
}*pointer,node;
typedefpointeropenhash[n];
试写出开散列表上的查找算法。
2010年10月自考数据结构导论参考答案