算法与数据结构题库试题卷.docx
《算法与数据结构题库试题卷.docx》由会员分享,可在线阅读,更多相关《算法与数据结构题库试题卷.docx(61页珍藏版)》请在冰豆网上搜索。
![算法与数据结构题库试题卷.docx](https://file1.bdocx.com/fileroot1/2022-12/7/4f708090-9035-44cd-9abc-a9b9f8cbba0c/4f708090-9035-44cd-9abc-a9b9f8cbba0c1.gif)
算法与数据结构题库试题卷
算法与数据结构考试试卷试题库
试题卷
计算机科学与技术系算法与数据结构课程建设小组编写
2011-11-21第3稿
一、选择题
1.在数据结构教材中,从存储结构上可以把数据结构分成()。
A.顺序存储和链式存储B.紧凑结构和非紧凑结构
C.线性结构和非线性结构D.动态结构和静态结构
2.线性表是n个()的有限序列。
A.字符B.数据元素
C.数据项D.信息项
3.有六个元素按6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列()。
A.543612B.453126
C.346521D.234156
4.不带头结点的单链表存储的队列中,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()。
A.仅修改队头指针B.仅修改队尾指针
C.队头、队尾指针都可能要修改D.队头、队尾指针都要修改
5.为了增加内存空间的利用率和减少发生上溢的可能性,由两个栈共享一片内存空间时,应将两个栈的()分别设在这片内存空间的两端,只有当两个栈的栈顶在栈空间的某个位置相遇时,才产生上溢。
A.长度B.深度
C.栈底D.栈顶
6.()是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称。
A.数据对象B.数据项
C.数据类型D.数据集合
7.从逻辑结构上看,下列结构()不属于基本逻辑结构中的线性结构。
A.字符串B.数组
C.队列D.图
8.一棵具有n个结点的完全二叉树的树高度(深度)是()
A.log2n+1B.log2n+1
C.log2nD.log2n-1
9.二叉树的第i层上最多含有结点数为( )。
A.2iB.2i-1-1
C.2i-1D.2i-1
10.由3个结点可以构造出多少种不同的二叉树?
()
A.2B.3
C.4D.5
11.在长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时,需要向后移动()个元素。
A.n-iB.n-i+1
C.n-i-1D.i
12.引入二叉线索树的目的是()
A.加快查找结点的前驱或后继的速度
B.为了能在二叉树中方便的进行插入与删除
C.为了能方便的找到双亲
D.使二叉树的遍历结果惟一
13.有n个叶子的哈夫曼树的结点总数为()
A.不确定B.2n
C.2n+1D.2n-1
14.利用二叉链表存储树时,根结点的右指针是()
A.指向最左孩子B.指向最右孩子
C.空D.非空
15.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?
()
A.1和5B.2和4
C.4和2D.5和1
16.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。
与森林F对应的二叉树根结点的右子树上的结点个数是()
A.M1B.M1+M2C.M3D.M2+M3
17.n个结点的线索二叉树上含有的线索数为()
A.2nB.n-lC.n+lD.n
18.设h指向带头结点的循环单链表,则判别链表空的条件是()。
A.h==NULLB.h->next==NULL
C.h==h->nextD.h==h->next->next
19.串的长度是指()。
A.串中所含不同字母的个数B.串中所含字符的个数
C.串中所含不同字符的个数D.串中所含非空格字符的个数
20.设n表示问题的规模,现有关描述该问题算法的时间复杂度T(n)的叙述
(1)T(n)与n无关时,T(n)=O
(1)
(2)对数阶时间复杂度的时间增长率大于线性阶
(3)设算法主运算的重复执行次数为(n-1)(n-2)/2,则T(n)=O(n2)
(4)当n增大时T(n)增长很快的算法称为有效算法
其中正确的是()。
A.
(1)
(2)B.
(1)(3)C.
(2)(3)D.(3)(4)
21.一种数据结构的元素之间存在着1:
n的关系,这种数据结构称为()。
A.线性结构B.双向环形链表C.树D.图
22.设环形队列cq的元素域范围为cq.e[0]~cq.e[19],front表示队头元素的前一个位置,rear表示队尾元素位置。
初始时,front=18,rear=5;运行后,front=5,rear=18。
则运行过程中,该队列出队、入队的元素个数分别为()。
A.7,13B.7,14C.8,7D.8,13
23.设h是指向带表头结点循环链表头指针,指针p指向链表中某一结点,指针i指向需插入链表的新结点(简称i结点),执行下列语句序列后,结果是()。
q=h;
while(q->next!
=p)
q=q->next;
i->next=p;q->next=i;
其中,q->next为q指向结点的指针域。
A.在p指向结点之前插入i结点
B.在p指向结点之后插入i结点
C.在p->next指向结点之后插入i结点
D.在链尾插入i结点
24.二维数组M的行数、列数相等,每个元素占L个存储单元,起始元素M[0][0]的存储位置为100L,M的总存储单元数为400L,则M[10][10]的存储位置为()。
A.210LB.211LC.310LD.320L
25.设有n个结点的树,则该树所有结点度之和为()。
A.n-1B.nC.n+1D.2n
26.一棵n个结点的二叉树(n>1),其先序遍历序列与其后序遍历序列相反,则该树必定是()。
A.根结点无右子树B.根结点无左子树
C.树中只有一个叶结点D.树中只有三个结点
27.有n个顶点、m条边的无向图邻接表中,其指针域总数为。
A.mB.n+mC.2mD.n+2m
28.对有序表ort中的元素ort[1]~ort[30]进行对半查找,则查找成功时对关键字需进行5次比较的元素有()个。
A.4B.8C.15D.16
29.设有n个元素的待排序列,下列选项中,时间复杂度为O(nlog2n)、且排序过程为稳定的方法是()。
A.选择排序B.对半插入排序C.快速排序D.归并排序
30.在图的邻接表结构中,顶点间的逻辑关系是通过()与对应链表结点邻接域值的关系来表示的。
A.表头结点数据域值B.表头结点权值
C.表头结点序号(编号)D.表头结点指针域值
31.设有元素A.B.C.D.E、F为入栈序列,若使栈中仅保留B.C,则下列的出栈序列(元素在入栈过程中可以出栈)中()是正确的。
A.ADFEB.AFDEC.DAEFD.EFDA
32.设h指向带表头结点的循环单链表,则判别链表空的条件是()。
h指向结点指针域用h->next表示,NULL为空指针。
A.h==NULLB.h->next==NULL
C.h==h->nextD.h==h->next->next
33.设有二维数组a[b1][b2],每个元素占用L个存储单元,数组的起始地址为LOC[0,0],则元素a[i][j]按行为主序的存储地址计算公式为()。
A.LOC[0,0]+(b1×j+i)LB.LOC[0,0]+(b2×i+j)L
C.LOC[0,0]+(b1×i+j)LD.LOC[0,0]+(b2×j+i)L
34.在二叉树的第i层上最多有()(i≥1)个结点。
A.2i-1B.log2i+1C.2iD.2i-1
35.C.D为二叉树上的两个结点,则该二叉树的中序遍历序列中,C在D前面的条件是()。
A.C是D的祖先B.C是D的子孙
C.C在D的左方D.C在D的右方
36.n个顶点的强连通图的邻接矩阵中至少有()个非零元素。
A.n-1B.nC.2n-2D.2n
37.对有18个元素的有序表(A[1],A[2],…,A[18])作二分(折半)查找,查找到A[3]进行比较的下标序列为()。
A.1、2、3B.9、5、2、3C.9、4、3D.9、4、2、3
38.对一个元素序列按其关键字从小到大进行快速排序。
为尽可能使每趟排序时将排序区间划分为两个元素个数基本相等的空间以提高时效,应取该区间中元素关键字的()作为比较基准。
A.第1个值B.最小值C.中间值D.最大值
39.下列数据结构的顺序存储结构中,不可对其元素的数据域值进行随机存取的结构
是()。
A.线性表B.数组C.队列D.二叉树
40.在线性表的下列运算中,不改变数据元素之间逻辑关系的运算是()。
A.插入B.删除C.排序D.定位
41.指针h指向非空带表头结点的循环链表,h指向结点的指针域用h一>next,p为指向链表中任一结点的指针。
若h->next=p,则表示p指向()
A.表头结点B.链表第1个结点C.链表第2个结点D.链表尾结点
42.二维数组A(元素为A[0][0]~A[7][8])按行优先方式存储,若数组元素A[2][4]存储地址为1090,A[4][6]的存储地址为1150,则数组元素A[6][7]的存储地址()
A.1204B.1207C.1209D.1211
43.结点总数为n的完全二叉树中,其叶结点数为()。
其中,运算符“/”为整除符。
A.n/2B.(n一1)/2C.(n+1)/2D.(n一2)/2
44.在任意一棵二叉树的先序序列和后序序列中,各叶子之间的相对次序关系()。
A.不一定相同B.都相同C.都不相同D.互为逆序
45.设有向图G的二元组定义如下:
G=(V,A)
其中,V={vl,v2,v3,v4}
A={,,,}
则以下叙述中,正确的是()。
A.顶点V1的入度为2B.顶点v2的出度为1
C.顶点V3和顶点V4间的弧数为3D.G的强连通分量数为2
46.分块查找需要建立一个分块表和一个索引表,分块表分成若干个块,表中元素关键字
的排列要求是()。
A.块间无序、块内无序B.块间无序、块内有序
C.块间有序、块内无序D.块间有序、块内有序
47.在下列算法中,()排序算法可能出现下面的情况:
在最后一趟排序开始之前,所
有的元素都不在其最终的位置上。
A.选择B.冒泡C.插入D.快速
48.设n为问题规模的量,下列所表示的算法时间复杂度中,当T(n)为()时,随着n增大T(n)增长很快,我们称其对应的算法为无效算法。
A.O(log2n)B.O(nlog2n)C.O(2n)D.O(n2)
49.在数据结构中,数据的运算()。
A.效率与采用何种存储结构有关B.是根据存储结构来定义的
C.分为算术运算和关系运算两大类D.必须用高级程序设计语言来描述
50.用一个大小为6的一维数组来实现环形队列,设当前队尾rear和队头front的值分别为0和3。
当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是()。
A.1和5B.2和4C.4和2D.5和1
51.设单链表中指针P指向结点A,若要删除A后面的一个结点(已存在),则需要修改指针的操作为()。
p所指结点的指针域用p->next表示。
A.p->next=p->next->nextB.p=p->next
C.p=p->next->nextD.p->next=p
52.设有二维数组A[b1][b2],若以行为主序存储时元素A[i][j]的存储地址为D,以列为主序存储时存储地址也等于D的元素为A[row][col],则row、col值的计算公式分别为()。
(其中:
运算符“/”为整除符,即div;运算符“%”为取余符,即mod。
A.(b1×j+i)/b2,(b1×j+i)%b2B.(b1×j+i)%b2,(b1×j+i)/b2
C.(b2×i+j)/b1,(b2×i+j)%b1D.(b2×i+j)%b1,(b2×i+j)/b1
53.有关二叉树的下列说法中,正确的是()。
A.二叉树的度为2B.二叉树的度可以小于2
C.二叉树中至少有一个结点的度为2D.二叉树中任何一个结点的度都为2
54.一棵满二叉树,若共有n个结点和m个叶子结点,则()。
A.n=2m-2B.n=2m-1C.n=2mD.n=2m+1
55.对无向图的邻接矩阵来说,()。
A.第i行上的非零元素个数和第i列上的非零元素个数一定相等
B.非零元素个数等于图中的边数
C.第i行上和第i列上的非零元素个数的总数等于顶点vi的度数
D.矩阵中非全零行的行数等于图中的顶点数
56.对有13个元素的有序表{1,3,9,12,32,41,45,62,75,77,82,95,100}作折半查找,当查找值为82的元素时,须经过()次比较后查找成功。
A.4B.3C.2D.1
57.从排序过程来看,下列()排序方法都是通过元素交换方式进行排序的。
A.简单选择和直接插入B.直接插入和冒泡
C.冒泡和快速D.快速和归并
58.下列有关数据结构的叙述中,正确的是()。
A.线性表、栈和队列的顺序存储结构及其操作是一致的
B.数组以行序为主序排列时元素下标排列次序的变化为:
先变化最右边的下标,从右向左,最后变化最左边的下标
C.非空二叉树中每个结点有且只有一个双亲
D.图的遍历算法中增设一个访问数组用于存放顶点的数据
59.环形队列用a[0..m-1]存放其元素值,设front指向队头元素的前一个位置,rear指向队尾元素,则当前队列中有()个元素。
A.(rear-front+m)%mB.(rear-front+1)%m
C.rear-front-1D.rear-front
60.某线性链表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则在下列存储结构中,采用()最节省操作时间。
A.仅有头指针的循环单链表B.仅有头指针的非循环单链表
C.有尾指针的循环单链表D.带表头结点的双向循环链表
61.设二维数组B的元素存放在B[0][0]~B[9][19]中,每个元素占L个存储单元,则B按列优先次序存放时元素B[6][6]的地址与B按行优先次序存放时元素()的地址相同。
A.B[3][5]B.B[3][6]C.B[5][3]D.B[6][6]
62.指针t指向的树转换为指针bt指向的二叉树,则下列叙述中正确的是()。
①t树与bt树结点数相等②t树与bt树的存储结构相同
③t树与bt树的层数相等④bt树的右子树必定为空
A.①、②B.①、③C.①、④D.②、③、④
63.二叉树的先序遍历序列为efhigjk,中序遍历序列为hfiejkg。
该二叉树根的右子树的根是()。
A.eB.fC.gD.h
64.无向图g=(v,e),其中:
v={a,b,c,d,e,f},e={(a,b),(a,c),(a,e),(b,e),(c,f),(d,e),(d,f)},采用邻接矩阵存储结构,按顶点字母先后次序存储,从顶点a出发,对该图进行深度优先搜索,得到的顶点序列是()。
A.a,b,e,d,f,cB.a,e,f,e,b,d
C.a,e,h.c,f,dD.a,e,d,f,c,b
65.散列表的地址区间为0~16,散列函数为H(k)=k%17,采用线性探测法处理冲突,取增量值为1,将关键字序列为{26,25,72,38,8,18,59}的元素依次储存到散列表中。
则关键字为59的元素存放在散列表中的地址是()。
A.7B.8C.10D.1l
66.对一组数据{21,25,49,26,16,8}进行升序排序,进行3趟排序后数据的排列顺序变为{21,16,8,25,26,49},则采用的排序方法是()。
A.简单选择排序B.冒泡排序C.直接插入排序D.快速排序
67.计算机算法指的是()。
A.计算方法B.排序方法
C.解决某一问题的有限运算序列D.调度方法
68.在一个单链表中,若p所指结点不是最后结点,在p所指结点之后插入s所指结点,则实行()。
A.s->next:
=p;p->next=s;B.s->next:
=p->next;p->next:
=s;
C.s->next:
=p->next;p:
=s;D.p->next:
=s;s->.next=p;
69.某个向量第一元素的存储地址为100,每个元素的长度为2,则第五个元素的地址是()。
A.110B.108C.100D.120
70.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()。
A.(rear-front+m)MODmB.rear-front+1
C.rear-front-1D.rear-front
71.栈和队列的共同特点是()。
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素D.没有共同点
72.深度为n的二叉树中所含叶子结点的个数最多为()个。
A.2nB.nC.2n-1D.2n-1
73.树最适合用来表示()。
A.有序数据元素B.无序数据元素
C.元素之间具有分支层次关系的数据D.元素之间无联系的数据
74.下面的二叉树中,()不是完全二叉树。
75.下列说法错误的是()。
A.一个图的邻接矩阵表示是唯一的
B.一个图的邻接表表示是不唯一的
C.一个图的生成树必为该图的极小连通子图
D.一个无环有向图的拓扑排序序列必唯一
76.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A.5B.6C.7D.8
77.对线性表进行二分查找时,要求线性表必须()。
A.以顺序方式存储
B.以链接方式存储
C.以顺序方式存储,且结点按关键字有序排序
D.以链接方式存储,且结点按关键字有序排序
78.直接存取文件的特点是()。
A.记录按关键字排序B.记录可以进行顺序存取
C.存取速度快,但占用较多的存储空间D.记录不需要排序,存取效率高
79.文件存储的基本单位是()。
A.记录B.数据项C.属性D.关键字
80.一组记录的排序码为(47、78、61、33、39、80),则利用堆排序的方法建立的初始堆为()。
A.78、47、61、33、39、80B.80、78、61、33、39、47
C.80、78、61、47、39、33D.80、61、78、39、47、33
81.一个数组元素a[i]与()的表示等价。
A.*(a+i)B.a+iC.*a+iD.&a+i
82.对于两个函数,若函数名相同,但只是()不同则不是重载函数。
A.参数类型B.参数个数C.函数类型
83.若需要利用形参直接访问实参,则应把形参变量说明为()参数。
A.指针B.引用C.值
84.下面程序段的时间复杂度为()。
for(inti=0;ifor(intj=0;ja[i][j]=i*j;
A.O(m2)B.O(n2)C.O(m*n)D.O(m+n)
85.执行下面程序段时,执行S语句的次数为____________。
for(inti=1;i<=n;i++)
for(intj=1;j<=i;j++)
S;
A.n2B.n2/2C.n(n+1)D.n(n+1)/2
86.下面算法的时间复杂度为____________。
intf(unsignedintn){
if(n==0||n==1)return1;elsereturnn*f(n-1);
}
A.O
(1)B.O(n)C.O(n2)D.O(n!
)
87.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移()个元素。
A.n-iB.n-i+1C.n-i-1D.i
88.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移()个元素。
A.n-iB.n-i+1C.n-i-1D.i
89.在一个长度为n的线性表中顺序查找值为x的元素时,查找时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为()。
A.nB.n/2C.(n+1)/2D.(n-1)/2
90.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
A.HL=p;p->next=HL;
B.p->next=HL;HL=p;
C.p->next=HL;p=HL;
D.p->next=HL->next;HL->next=p;
91.在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行()。
A.q->next=p->next;p->next=q;
B.p->next=q->next;q=p;
C.q->next=p->next;p-