自考数据结构导论试题1.docx
《自考数据结构导论试题1.docx》由会员分享,可在线阅读,更多相关《自考数据结构导论试题1.docx(39页珍藏版)》请在冰豆网上搜索。
自考数据结构导论试题1
全国2007年1月
数据结构导论试题
课程代码:
02142
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.关于栈和队列的说法中正确的是()
A.栈和队列都是线性结构
B.栈是线性结构,队列不是线性结构
C.栈不是线性结构,队列是线性结构
D.栈和队列都不是线性结构
2.关于存储相同数据元素的说法中正确的是()
A.顺序存储比链式存储少占空间
B.顺序存储比链式存储多占空间
C.顺序存储和链式存储都要求占用整块存储空间
D.链式存储比顺序存储难于扩充空间
3.从逻辑关系来看,数据元素的直接前驱为0个或1个的数据结构只能是()
A.线性结构B.树形结构
C.线性结构和树型结构D.线性结构和图状结构
4.已知一个单链表中,指针q指向指针p的前趋结点,若在指针q所指结点和指针p所指结点之间插入指针s所指结点,则需执行()
A.q→next=s;p→next=s;B.q→next=s;s→next=p;
C.q→next=s;q→next=p;D.q→next=s;s→next=q;
5.在长度为n的线性表中删除一个指针p所指结点的时间复杂度是()
A.O(n)B.O
(1)
C.O(log2n)D.O(n2)
6.设一个栈的输入序列是a,b,c,d,则所得到的输出序列(输入过程中允许出栈)不可能出现的是()
A.a,b,c,dB.a,b,d,c
C.d,c,b,aD.c,d,a,b
7.关于串的叙述中,正确的是()
A.空串是只含有零个字符的串
B.空串是只含有空格字符的串
C.空串是含有零个字符或含有空格字符的串
D.串是含有一个或多个字符的有穷序列
8.在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是()
A.front==rearB.(front+1)%m==rear
C.rear+1==frontD.(rear+1)%m==front
9.设有二维数组A[n][n]表示如下:
,则A[i][i](0≤i≤n-1)的值为()
A.i*(i-1)/2B.i*(i+1)/2
C.(i+2)*(i+1)/2D.i2/2
10.高度为h的完全二叉树中,结点数最多为()
A.2h-1B.2h+1
C.2h-1D.2h
11.由m棵结点数为n的树组成的森林,将其转化为一棵二叉树,则该二叉树中根结点的右子树上具有的结点个数是()
A.mnB.mn-1
C.n(m-1)D.m(n-1)
12.在一个具有n个顶点的无向图中,每个顶点度的最大值为()
A.nB.n-1
C.n+1D.2(n-1)
13.关于无向图的邻接矩阵的说法中正确的是()
A.矩阵中非全零元素的行数等于图中的顶点数
B.第i行上与第i列上非零元素总和等于顶点Vi的度数
C.矩阵中的非零元素个数等于图的边数
D.第i行上非零元素个数和第i列上非零元素个数一定相等
14.设一组记录的关键字key值为{62,50,14,28,19,35,47,56,83},散列函数为H(key)=keymod13,则它的开散列表中散列地址为1的链中的结点个数是()
A.1B.2
C.3D.4
15.设有一组初始关键字值序列为(49,81,55,36,44,88),则利用快速排序的方法,以第一个关键字值为基准得到的一次划分为()
A.36,44,49,55,81,88B.44,36,49,55,81,88
C.44,36,49,81,55,88D.44,36,49,55,88,81
二、填空题(本大题共13小题,每小题2分,共26分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
16.在数据结构中,各个结点按逻辑关系互相缠绕,任意两个结点可以邻接的结构称为_______。
17.每个存储结点只含一个数据元素,所有存储结点连续存放。
此外增设一个索引表,索引表中的索引指示各存储结点的存储位置或位置区间端点。
按这种方式组织起来的存储结构称为_______。
18.在顺序表上读表元算法的时间复杂度为_______。
19.双链表中前驱指针为prior,后继指针为next,在指针P所指结点前插入指针S所指的结点,需执行下列语句:
S→next=P;S→prior=P→prior;P→prior=S;_______;
20.设数组A[0..8][0..8]的起始元素位置为a,每个元素占2L个存储单元,按行序为主序存储。
若元素A[i][j]的存储位置为a+66L,则元素A[j][i]的存储位置为_______。
21.有4个结点且深度为4的二叉树的形态共有_______种。
22.某二叉树的先根遍历序列为IJKLMNO,中根遍历序列为JLKINMO,则该二叉树中根结点的右孩子是_______。
23.第一个顶点和最后一个顶点相同的路径称为回路或者环,除第一个顶点和最后一个顶点外,其余顶点都不重复的回路,称为_______。
24.一个具有10个顶点的完全无向图中有_______条边。
25.一棵平衡二叉树中任一结点的平衡因子只可能是_______。
26.二分查找的时间复杂度为_______。
27.二路归并排序算法的时间复杂度为_______。
28.文件的基本存取单位是_______。
三、应用题(本大题共5小题,每小题6分,共30分)
29.有一字符串序列为5*-x-y/x+2,利用栈的运算将其输出结果变为5x-*yx+/-2,试写出该操作的入栈和出栈过程(采用push(a)表示a入栈,pop(a)表示a出栈)。
30.某二叉树的先根遍历序列为ABIJCDFGHE,中根遍历序列为IJBADGFHCE,试画出该二叉树,并写出它的后序遍历序列。
31.用冒泡排序算法对数据序列(49,38,65,97,76,134,27,49)进行排序,写出整个冒泡排序的每一趟过程。
32.题32图所示二叉树是否为平衡二叉树?
若是,说明理由;若不是,将其转换为平衡二叉树。
题32图
33.已知连通网的邻接矩阵A=
,试画出它所表示的连通网并画出该连通网的最小生成树。
四、算法设计题(本大题共2小题,每小题7分,共14分)
34.设单链表的结点结构如下:
structnode{datatypedata;
structnode*next;
}
试编写一个函数intcount(structnode*head,datatypex)统计单链表中数据域为x的结点个数。
35.试写出直接插入排序算法。
全国2007年10月
数据结构导论试题
课程代码:
02142
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.在数据结构中,从逻辑上可以把数据结构分成()
A.线性结构和非线性结构B.紧凑结构和非紧凑结构
C.动态结构和静态结构D.内部结构和外部结构
2.for(i=0;ifor(j=0;jA[i][j]=i*j;
上面算法的时间复杂度为()
A.O(m2)B.O(n2)
C.O(m×n)D.O(m+n)
3.设顺序表有9个元素,则在第3个元素前插入一个元素所需移动元素的个数为()
A.5B.6
C.7D.9
4.设p为指向双向循环链表中某个结点的指针,p所指向的结点的两个链域分别用p→llink和p→rlink表示,则同样表示p指针所指向结点的表达式是()
A.p→llinkB.p→rlink
C.p→llink→llinkD.p→llink→rlink
5.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是()
A.110B.108
C.100D.120
6.设有一个栈,按A、B、C、D的顺序进栈,则可能为出栈序列的是()
A.DCBAB.CDAB
C.DBACD.DCAB
7.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top为栈顶指针,则当做出栈处理时,top变化为()
A.top++B.top--
C.top不变D.top=0
8.除根结点外,树上每个结点()
A.可有任意多个孩子、一个双亲B.可有任意多个孩子、任意多个双亲
C.可有一个孩子、任意多个双亲D.只有一个孩子、一个双亲
9.题9图中树的度为()
A.2
B.3
C.5
D.8题9图
10.有4个顶点的无向完全图的边数为()
A.6B.12
C.16D.20
11.设图的邻接矩阵为
,则该图为()
A.有向图B.无向图
C.强连通图D.完全图
12.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。
这种方式主要适合于()
A.静态查找表B.动态查找表
C.静态查找表与动态查找表D.静态查找表或动态查找表
13.用散列函数求元素在散列表中的存储位置时,可能会出现不同的关键字得到相同散列函数值的冲突现象。
可用于解决上述问题的是()
A.线性探测法B.除留余数法
C.平方取中法D.折叠法
14.排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是()
A.选择排序B.插入排序
C.冒泡排序D.快速排序
15.在排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()
A.希尔排序B.归并排序
C.插入排序D.选择排序
二、填空题(本大题共13小题,每小题2分,共26分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
16.如果操作不改变原逻辑结构的“值”,而只是从中提取某些信息作为运算结果,则称该类运算为__________型运算。
17.设有指针head指向不带表头结点的单链表,用next表示结点的一个链域,指针p指向与链表中结点同类型的一个新结点。
现要将指针p指向的结点插入表中,使之成为第一个结点,则所需的操作为“p→next=head;”和“__________”。
18.单链表中逻辑上相邻的两个元素在物理位置上__________相邻。
19.在一个长度为n的数组中删除第i个元素(1≤i≤n)时,需要向前移动的元素的个数是__________。
20.设F、C是二叉树中的两个结点,若F是C的祖先结点,则在采用后根遍历方法遍历该二叉树时,F和C的位置关系为:
F必定在C的__________。
21.若用后根遍历法遍历题21图所示的二叉树,其输出序列为__________。
题21图
22.具有n个顶点的连通图至少需有__________条边。
23.在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于__________。
24.设顺序表的表长为n,且查找每个元素的概率相等,则采用顺序查找法查找表中任一元素,在查找成功时的平均查找长度为__________。
25.在索引顺序表上的查找分两个阶段:
一是查找__________,二是查找块。
26.文件的基本运算有检索和修改两类。
而检索又有三种方式,它们是__________存取、直接存取和按关键字存取。
27.在对一组关键字为(54,38,96,23,15,72,60,45,83)的记录采用直接选择排序法进行排序时,整个排序过程需进行__________趟才能够完成。
28.冒泡排序是一种稳定排序方法。
该排序方法的时间复杂度为__________。
三、应用题(本大题共5小题,每小题6分,共30分)
29.分别写出题29图中二叉树的先根、中根、后根遍历序列。
题29图
30.设要将序列(Q,H,C,Y,P,A,M,S,R)按字母升序排序,请分别画出采用堆排序方法时建立的初始堆,以及第一次输出堆顶元素后经过筛选调整的堆的完全二叉树形态。
31.如题31图所示,输入元素为A,B,C,在栈的输出端得到一个输出序列ABC,试写出在栈的输入端三个可能的输入序列。
题31图
32.已知无向图G的邻接矩阵如题32图所示。
请画出该无向图,并写出按深度优先搜索时的访问序列。
题32图
33.对长度为20的有序表进行二分查找,试画出它的一棵判定树。
四、算法设计题(本大题共2小题,每小题7分,共14分)
34.下面程序段为删除循环链表中第一个info域值等于x的结点,请填上程序中缺少的部分。
循环链表的结构如题34图所示:
题34图
structnode{intinfo;structnode*link;}
intDelete(structnode*head,intx)
{structnode*p,*q;/*p:
当前处理的结点;q:
p的前驱结点*/
if(!
head)return(0);
if(head→link==head)
{if(head→info==x)
{free(head);head=NULL;return(x)
}
return(0);
}
p=head;q=head;
while(q→link!
=head)q=
(1);
while(p→link!
=head)
{if(p→info==x)
{
(2);
if(p==head)head=(3);
free(p);return(x);
}
else{q=p;(4);}
}
return(0);
}
35.设以二叉链表为二叉树的存储结构,结点的结构如下:
lchild
data
rchild
其中data域为整数,试设计一个算法voidchange(bitreptrr):
若结点左孩子的data域的值大于右孩子的data域的值,则交换其左、右子树。
全国2008年1月
数据结构导论试题
课程代码:
02142
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.在数据结构中,数据的基本单位是()
A.数据项B.数据元素
C.数据对象D.数据文件
2.k=1;
for(i=0;ifor(j=0;jA[i][j]=k++;
上述程序段的时间复杂度为()
A.O(n2)B.O(n)
C.O(2n)D.O
(1)
3.线性表采用链式存储结构时,要求内存中可用存储单元的地址()
A.必须是连续的B.必须是部分连续的
C.一定是不连续的D.连续和不连续都可以
4.设h是指向非空带表头结点的循环链表的头指针,p是辅助指针。
执行程序段
p=h;
while(p->next->next!
=h)
p=p->next;
p->next=h;
后(其中,p->next为p指向结点的指针域),则()
A.p->next指针指向链尾结点B.h指向链尾结点
C.删除链尾前面的结点D.删除链尾结点
5.设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为()
A.236B.239C.242D.245
6.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能是()
A.dceabB.decba
C.edcbaD.abcde
7.元素大小为1个单元,容量为n个单元的非空顺序栈中,以地址高端为栈底,以top作为栈顶指针,则出栈处理后,top的值应修改为()
A.top=topB.top=n-1
C.top=top-1D.top=top+1
8.某二叉树的先根遍历序列和后根遍历序列正好相反,则该二叉树具有的特征是()
A.高度等于其结点数B.任一结点无左孩子
C.任一结点无右孩子D.空或只有一个结点
9.在完全二叉树中,若一个结点是叶结点,则它没有()
A.左孩子结点
B.右孩子结点
C.左孩子结点和右孩子结点
D.左孩子结点,右孩子结点和兄弟结点
10.邻接矩阵为对称矩阵的图是()
A.有向图B.带权有向图
C.有向图或无向图D.无向图
11.在一个具有n个顶点的无向图中,要连通全部顶点至少需要的边数为()
A.n-1B.n
C.n+1D.
12.若构造一棵具有n个结点的二叉排序树,最坏的情况下其深度不超过()
A.
B.n
C.
D.n+1
13.闭散列表中由于散列到同一个地址而引起的“堆积”现象,是()
A.由同义词之间发生冲突引起的
B.由非同义词之间发生冲突引起的
C.由同义词之间或非同义词之间发生冲突引起的
D.由散列表“溢出”引起的
14.一个序列中有10000个元素,若只想得到其中前10个最小元素,最好采用的排序方法是
()
A.快速排序B.堆排序
C.插入排序D.二路归并排序
15.在排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()
A.希尔排序B.插入排序
C.冒泡排序D.快速排序得分
二、填空题(本大题共13小题,每小题2分,共26分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
16.数据的逻辑结构通常包括集合、线性结构、____________和图状结构。
17.设双链表中结点的前趋指针和后继指针的域名分别为t1和r1,指针s指向双链表中的一个结点(该结点既非头结点,也非尾结点),则删除s指针所指向结点的操作为“s->tl->r1=s->r1;”和“____________”。
18.对稀疏矩阵进行压缩存储的目的是节省____________。
19.在一个具有n个结点的单链表中查找值为m的某结点,若查找成功,则需平均比较的结点数为____________。
20.深度为15的满二叉树上,第11层有____________个结点。
21.对一棵有100个结点的完全二叉树按层编号,则编号为49的结点,它的左孩子的编号为____________。
22.一个具有4个顶点的无向完全图有____________条边。
23.一个有向图G中若有孤、和,则在图G的拓扑序列中,顶点Vi,Vj和Vk的相对位置为____________。
24.在一棵二叉排序树上按____________遍历得到的结点序列是一个有序序列。
25.实现二分查找的存储结构仅限于顺序存储结构,且其中元素排列必须是____________的。
26.文件的检索有三种方式,它们是顺序存取、直接存取和____________存取。
27.在插入排序和选择排序中,若原始记录已基本有序,则较适合选用____________。
28.对n个元素的序列进行冒泡排序时,最多需进行____________趟。
三、应用题(本大题共5小题,每小题6分,共30分)
29.写出利用直接选择排序方法对一组关键码为(54,38,96,23,15,72,60)的记录进行排序时,每趟排序的结果。
30.已知一棵二叉树的中根遍历序列和后根遍历序列分别为BDAFEHGC和DBFHGECA,试画出这棵二叉树。
31.设闭散列表容量为7(散列地址空间0..6),给定表(30,36,47,52,34),散列函数H(K)=Kmod6,采用线性探测法解决冲突,要求:
(1)构造散列表;
(2)求查找数34需要比较的次数。
32.如题32图所示,在栈的输入端有6个元素,顺序为A,B,C,D,E,F。
能否在栈的输出端得到序列DCFEBA及EDBFCA?
若能,给出栈操作的过程,若不能,简述其理由。
题32图
33.已知无向图G的邻接表如题33图所示,请画出该无向图,并写出其按广度优先搜索时的访问序列。
其中nil表示空。
题33图
四、算法设计题(本大题共2小题,每小题7分,共14分)
34.编写一个函数voidinsert(int*p,intsize,inta),其功能是将a插入指针变量p指向的长度为size的数组中。
设数组中的数据已按升序排序。
该函数要求实现的功能是:
首先采用折半查找的方法,找出要插入数据的位置;然后按升序将数据插入该数组中。
35.某带头结点的单链表的结点结构说明如下:
typedefstructnode1
{
intdata;
structnode1*next
}node;
试设计一个算法intcopy(node*head1,node*head2),将以head1为头指针的单链表复制到一个不带头结点且以head2为头指针的单链表中。
全国2008年10月自学考试数据结构导论试题
课程代码:
02142
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.从逻辑上可以把数据结构分为( )
A.动态结构、静态结构B.顺序结构、链式结构
C.线性结构、非线性结构D.初等结构、构造型结构
2.关于算法的描述,不正确的是( )
A.算法最终必须由计算机程序实现
B.所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界
C.健壮的算法不会因非法的输入数据而出现莫名其妙的状态
D.算法的优劣与算法描述语言无关
3.在单链表中,存储每个结点需要有两个域,一个是数据域,另一个是指针域,指针域指向该结点的( )
A.直接前趋B.直接后继
C.开始结点D.终端结点
4.将两个各有n个元素的有序表合并成一个有序表,其最少的比较次数为( )
A.nB.2n-1
C.2nD.n2
5.栈和队列共同具有的特点是( )
A.都是先进后出B.都是先进先出
C.只允许在端点进行操作运算D.既能先进先出,也能先进后出
6.若用一个有6个单元的数组来实现循环队列,rear和front的初值分别为0和3。
则从队列中删除一个元素,再添加两个元素后,rear和front的值分别为( )
A.1和5B.2和4
C.4和2D.5和1
7.数组A[0..5][0..5]的每个元素占5个字节,将其以列为主序存储在起始地址为1000的内存单元中,则元素A[5][5]的地址是( )
A.1175B.1180
C.1205D.1210
8.含有n个结点的二叉树采用二叉链表存储时,空指针域的个数为( )
A.n-1B.n
C.n+1D.n+2
9.在一棵深度为H的完全二叉树中,所含结点的个数不少于( )
A.2H-1-1B.2H-1
C.2H-1D.2H
10.一个具有n个顶点的无向连通图,它所包含的连通分量数为( )
A.0B.1
C.nD.不