1数据结构复习5Word格式.docx
《1数据结构复习5Word格式.docx》由会员分享,可在线阅读,更多相关《1数据结构复习5Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
(A)
11.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是_(B)
A.110B.108C.100D.120
12.一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是_(C)
A.edcbaB.decbaC.dceabD.abcde
13.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为__(C)_。
A.iB.n-iC.n-i+1D.不确定
14.栈结构通常采用的两种存储结构是__(A)
A.
顺序存储结构和链式存储结构B.
散列方式和索引方式
C.
链表存储结构和数组D.
线性存储结构和非线性存储结构
15.判定一个栈ST(最多元素为m0)为空的条件是__(B)
A.ST—>
top!
=0B.ST—>
top==0
C.ST—>
=m0D.ST—>
top==m0
16.判定一个栈ST(最多元素为m0)为栈满的条件是__(D)
top!
17.栈的特点是__(B)__,队列的特点是__(A)__。
A.先进先出B.先进后出
18.一个队列的入列序列是1,2,3,4,则队列的输出序列是__(B)_。
A.4,3,2,1B.1,2,3,4
C.1,4,3,2D.3,2,4,1
19.判定一个循环队列QU(最多元素为m0)为空的条件是__(A)
QU—>
front==QU—>
rearB.
front!
=QU—>
rear
front==(QU—>
rear+1)%m0D.
QU—>
=(QU—>
rear+1)%m0
20.判定一个循环队列QU(最多元素为m0)为满队列的条件是__(C)
21.循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是__(A)
A.(rear-front+m)%mB.rear-front+1
C.rear-front-1D.rear-front
22.栈和队列的共同点是___(C)
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素D.没有共同点
23.不带头结点的单链表head为空的判定条件是____。
A.head==NULLB.head—>next==NULL
C.head—>next==headD.head!
=NULL
24.带头结点的单链表head为空的判定条件是____。
25.非空的循环单链表head的尾结点(由p所指向)满足____。
A.p—>next==NULLB.p==NULL
C.p—>next==headD.p==head
26.在循环双链表的p所指结点之后插入s所指结点的操作是____。
p—>right=s;
s—>left=p;
p—>right—>left=s;
s—>right=p—>right;
B.
s—>left=p;
p—>right=s;
D.s—>left=p;
27.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行_(C)_。
A.s—>next=p—>next;
p—>next=s;
B.p—>next=s—>next;
s—>next=p;
C.q—>next=s;
D.
p—>next=s;
s—>next=q;
28.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行__(B)
s—>next=p;
B.
s—>next=p—>next;
p=s;
D.p—>next=s;
29.在一个单链表中,若删除p所指结点的后续结点,则执行____。
p—>next=p—>next—>next;
B.
p=p—>next;
p—>next=p—>next;
p=p—>next—>next;
30.从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较____个结点。
A.nB.n/2C.(n-1)/2D.(n+1)/2
31.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是____。
A.O
(1)B.O(n)C.O(n2)D.O(nlog2n)
11.11.若线性表最常用的操作是存取第i个元素及其前趋的值,则采用__D__存储方式最节省时间。
A.单链表B.双链表C.单循环链表D.顺序表
32.向一个栈顶指针为HS的链栈(不带空的头结点)中插入一个s所指结点时,执行_(C)_。
A.HS—>next=s;
B.s—>next=HS—>next;
HS—>next=s;
C.s—>next=HS;
HS=s;
D.s—>next=HS;
HS=HS—>next;
33.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行____。
(不带空的头结点)(D)
A.x=HS;
B.x=HS—>data;
C.HS=HS—>next;
x=HS—>data;
D.x=HS—>data;
34.空串与空格串是相同的,这种说法___B
35.串是一种特殊的线性表,其特殊性体现在____。
D
A.可以顺序存储B.数据元素是一个字符
C.可以链接存储D.数据元素可以是多个字符
36.设有两个串p和q,求q在p中首次出现的位置的运算称作___B
A.连接B.模式匹配
C.求子串D.求串长
37.设串s1=’ABCDEFG’,s2=’PQRST’,函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回串s的长度,con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果串是____。
A.BCDEFB.BCDEFG
C.BCPQRSTD.BCDEFEF
38.常对数组进行的两种基本操作是____。
C
A.建立与删除B.索引和修改
C.查找和修改D.查找与索引
39.二维数组M的成员是6个字符(每个字符占一个存储单元,即一个字节)组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M至少需要__①D__个字节;
M的第8列和第5行共占__②B__个字节。
①A.90B.180C.240D.540
②A.108B.114C.54D.60
40.数组A中,A的每个元素长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是____。
A.80B.100C.240D.270
41.数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为__C__。
A.SA+141B.SA+144C.SA+222D.SA+225
42.数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按列存放时,元素A[5][8]的起始地址为__B__。
A.SA+141B.SA+180C.SA+222D.SA+225
43.1.二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法__A__。
A.正确B.错误
44.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法_B___。
45.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为____。
(参考:
2^(h-1)+1)
A.2^hB.2^(h-1)C.2^(h+1)D.h+1
46.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是__D__。
A.acbedB.decabC.deabcD.cedba
47.设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是B。
A.a在b的右方B.a在b的左方
C.a是b的祖先D.a是b的子孙
48.假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为B个。
A.15B.16C.17D.47
49.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_A___。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
50.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。
这种说法__B__。
51.按照二叉树的定义,具有3个结点的二叉树有__C__种。
A.3B.4C.5D.6
52.树的基本遍历策略可分为先根遍历和后根遍历;
二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。
这里,我们把由树转化得到的二叉树叫做这棵数对应的二叉树。
结论__A__是正确的。
树的先根遍历序列与其对应的二叉树的先序遍历序列相同
B.树的后根遍历序列与其对应的二叉树的后序遍历序列相同
C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同
D.以上都不对
53.在一非空二叉树的中序遍历序列中,根结点的右边__A__。
A.只有右子树上的所有结点B.只有右子树上的部分结点
C.只有左子树上的部分结点D.只有左子树上的所有结点
54.树最适合用来表示__C__。
A.有序数据元素B.无序数据元素
C.元素之间具有分支层次关系的数据D.元素之间无联系的数据
55.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序__A__。
A.不发生改变B.发生改变C.不能确定D.以上都不对
56.对一个满二叉树,m个树叶,n个结点,深度为h,则____。
(无答案)
A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1
57.如果某二叉树的前序为stuwv,中序为uwtvs,那么该二叉树的后序为__C__。
A.uwvtsB.vwutsC.wuvtsD.wutsv
58.设n,m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是__C__。
A.n在m右方B.n是m祖先C.n在m左方D.n是m子孙
59.深度为5的二叉树至多有__C__个结点。
A.16B.32C.31D.10
60.在一个图中,所有顶点的度数之和等于所有边数的_C___倍。
A.1/2
B.1
C.2
D.4
61.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的__B__倍。
D.4
62.带权有向图G用邻接矩阵A存储,则顶点i的入度等于A中____。
A.第i行非∞的元素之和B.第i行非∞且非0的元素个数
C.第i列非∞的元素之和D.第i列非∞且非0的元素个数
63.一个有n个顶点的无向图最多有__C__条边。
A.n
B.n(n-1)
C.n(n-1)/2
D.2n
64.具有4个顶点的无向完全图有_A___条边。
A.6
B.12
C.16
D.20
65.具有6个顶点的无向图至少应有_A___条边才能确保是一个连通图。
A.5
B.6
C.7
D.8
66.在一个具有n个顶点的无向图中,要连通全部顶点至少需要__C__条边。
B.n+1
C.n-1
D.n/2
67.对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是__n*n__。
B.(n-1)^2
D.n^2
68.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为_①_A__;
所有邻接表中的接点总数是_②_C__。
①A.n
D.n+e
②A.e/2
B.e
C.2e
D.n+e
69.已知一个图如图9.5所示,若从顶点a出发按深度搜索法进行遍历,则可能得到的一种顶点序列为__①__;
按宽度搜索法进行遍历,则可能得到的一种顶点序列为__②__。
①A.a,b,e,c,d,f
B.e,c,f,e,b,d
C.a,e,b,c,f,d
D.a,e,d,f,c,b
②A.a,b,c,e,d,f
B.a,b,c,e,f,d
D.a,c,f,d,e,b
70.⑴根据有向图的深度优先遍历算法,从顶点v1出发,所得到的顶点序列是____。
A.v1,v2,v3,v5,v4
B.v1,v2,v3,v4,v5
C.v1,v3,v4,v5,v2
D.v1,v4,v3,v5,v2
⑵根据有向图的宽度优先遍历算法,从顶点v1出发,所得到的顶点序列是____。
A.v1,v2,v3,v4,v5
B.v1,v3,v2,v4,v5
C.v1,v2,v3,v5,v4
71.采用邻接表存储的图的深度优先遍历算法类似于二叉树的__A__。
A.先序遍历
B.中序遍历
C.后序遍历
D.按层遍历
72.采用邻接表存储的图的宽度优先遍历算法类似于二叉树的__D__。
73.判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以利用__B__。
A.求关键路径的方法
B.求最短路径的Dijkstra方法
C.宽度优先遍历算法
D.深度优先遍历算法
74.顺序查找法适合于存储结构为_B___的线性表。
A.散列存储
B.顺序存储或链接存储
C.压缩存储
D.索引存储
75.对线性表进行二分查找时,要求线性表必须__C__。
A.以顺序方式存储
B.以链接方式存储
C.以顺序方式存储,且结点按关键字有序排序
D.以链接方式存储,且结点按关键字有序排序
76.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为__C__.
B.n/2
C.(n+1)/2
D.(n-1)/2
77.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值82为的结点时,__C__次比较后查找成功。
A.1
B.2
C.4
78.设哈希表长m=14,哈希函数H(key)=key%11。
表中已有4个结点:
addr(15)=4;
addr(38)=5;
addr(61)=6;
addr(84)=7
如用二次探测再散列处理冲突,关键字为49的结点的地址是_A___。
A.8
B.3
C.5
D.9
填空题
1.数据逻辑结构包括线性表、树和图三种类型,树形结构和图形结构合称为非线性结构。
2.数据有四种基本的存储结构,它们是_顺序存储、_链式存储__、索引存储、散列存储。
3.若一个算法中的语句频度之和为T(n)=3720n+4nlogn,则算法的时间复杂度为O(nlogn)_。
4.在线性结构中,第一个结点无前驱结点,其余每个结点有且只有一个前驱结点;
最后一个结点无后续结点,其余每个结点有且只有一个后续结点。
5.在树形结构中,树根结点没有前驱结点,其余每个结点有且只有一个前驱结点,叶子结点没有前驱结点,其余每个结点的后续结点可以最多有两个。
6.在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
7.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
8.算法的五个重要特性是输入、输出、可行性、确定性和有穷性。
9.下面程序段的时间复杂度是①。
O(n*m)
for(i=0;
i<
n;
i++)
for(j=0;
j<
m;
j++)
A[i][j]=0;
10.下面程序段的时间复杂度是①。
O(N^2)
s=0;
s+=B[i][j];
sum=s;
11.下面程序段的时间复杂度是①。
O(log3n)
i=1;
while(i<
=n)
i=i*3;
12.向一个有227个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动113.5个元素。
13.队列是一种限定只能在表尾进行插入操作和在表首进行删除操作的线性表,又被称为先进先出(或FIFO)表。
14.向量、栈和队列都是_线性_结构,可以在向量的_任意_位置插入和删除元素;
对于栈只能在_一端_插入和删除元素;
对于队列只能在_一端___插入元素和__另一端__删除元素。
15.向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动_n-i+1___个元素。
16.在含有n个项点有e条边的无向图的邻接矩阵中,零元素的个数为_n2-2e_;
若采用邻接表表示,则所有邻接表中的结点总数是2e
17.向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动___n-i__个元素。
18.向栈中压入元素的操作是__入栈__。
19.对栈进行退栈时的操作是_出栈___。
20.从循环队列中删除一个元素时,其操作是_出队___。
21.在具有n个单元的循环队列中,队满时共有_n-1__个元素。
22.
一个栈的输入序列是12345,则栈的输出序列43512是__不可能的__。
23.一个栈的输入序列是12345,则栈的输出序列12345是__可能的__。
24.单链表是__线性表__的链接存储表示。
25.在双向链表中,每个结点有两个指针域,一个指向_前驱__,另一个指向__后继__。
26.设一棵完全二叉树具有1000个结点,则此完全二叉树有_500_个叶子结点,有_499_个度为2的结点。
27.在一个单链表中的p所指结点之前插入一个s所指结点时,可执行如下操作:
⑴s—>next=_p—>next___;
⑵p—>next=s;
⑶t=p—>data;
⑷p—>data=_s—>data___;
⑸s—>data=__t__;
28.在一个单链表中删除p所指结点时,应执行以下操作:
q=p—>next;
p—>data=p—>next—>data;
p—>next=_p—>next—>next___;
free(q