{
p=q;
q=q—〉next;
}
while(q!
=L&&q->data
{
r=q;
q=q-〉next;
free(r);
}
if(p!
=q)
p—>next=q;
}
4.试写一算法,实现单链表的就地逆置(要求在原链表上进行)。
voidconverse(NODEPTRL)
{
NODEPTRp,q;
p=L—>next;q=p-〉next;
L-〉next=NULL;
while(p) /*对于当前结点p,用头插法将结点p插入到头结点之后*/
{
p—〉next=L—〉next;
L—>next=p;
p=q;
q=q->next;
}
}
习题答案
2。
11.B2。
A,C3。
B4.D5.C6。
A7.A8.B
9。
C10。
D11.B12。
B13.A14.D15.B16.C
2.21。
线性结表2.前驱结点、后继结点
3。
s,p4。
q-〉next,q
5。
p—>next,s6。
O
(1),O(n)
习题3栈和队列
3。
1单项选择题
1。
一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是____.
A.edcbaB。
decbaC。
dceabD。
abcde
2。
若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为____。
A。
iB。
n=iC。
n—i+1D。
不确定
3。
栈结构通常采用的两种存储结构是____。
A.顺序存储结构和链式存储结构
B.散列方式和索引方式
C.链表存储结构和数组
D.线性存储结构和非线性存储结构
4.判定一个顺序栈ST(最多元素为m0)为空的条件是____。
A.top!
=0B。
top==0C.top!
=m0D.top==m0-1
5。
判定一个顺序栈ST(最多元素为m0)为栈满的条件是____。
A。
top!
=0B。
top==0C。
top!
=m0D。
top==m0—1
6.栈的特点是____,队列的特点是____。
A。
先进先出B.先进后出
7.向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行____。
(不带空的头结点)
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;
8。
从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行____.(不带空的头结点)
A。
x=HS;HS=HS->next;B。
x=HS—>data;
C。
HS=HS—>next;x=HS—>data;D.x=HS->data;HS=HS—>next;
9。
一个队列的数据入列序列是1,2,3,4,则队列的出队时输出序列是____。
A.4,3,2,1B。
1,2,3,4
C。
1,4,3,2D。
3,2,4,1
10。
判定一个循环队列QU(最多元素为m0)为空的条件是____.
A.rear-front==m0B.rear-front—1==m0
C.front==rearD.front==rear+1
11。
判定一个循环队列QU(最多元素为m0,m0==Maxsize-1)为满队列的条件是____。
A.((rear-front)+Maxsize)%Maxsize==m0
B。
rear-front—1==m0
C。
front==rear
D.front==rear+1
12.循环队列用数组A[0,m—1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是____.
A.(rear-front+m)%m
B。
rear-front+1
C。
rear-front-1
D。
rear-front
13。
栈和队列的共同点是____。
A。
都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素D.没有共同点
3.2填空题(将正确的答案填在相应的空中)
1。
向量、栈和队列都是____结构,可以在向量的____位置插入和删除元素;对于栈只能在____插入和删除元素;对于队列只能在____插入元素和____删除元素.
2.向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动____个元素。
3。
向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动____个元素.
4。
在具有n个单元的循环队列中,队满时共有____个元素。
习题答案
3。
11。
C2.C3.A4。
B5。
D6。
BA7.C8.B9.C10.C
11。
A12。
A13.C
3。
21。
线性、任何、栈顶、队尾、队首2.n—i+13。
n—i
4。
n-1
习题6树和二叉树
6.1单项选择题
1。
由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法____。
A.正确B.错误
2。
假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为个。
A.15B.16C.17D.47
3。
按照二叉树的定义,具有3个结点的不同形状的二叉树有____种.
A.3B.4C。
5D.6
4。
按照二叉树的定义,具有3个不同数据结点的不同的二叉树有____种。
A.5B。
6C。
30D.32
5.深度为5的二叉树至多有____个结点.
A。
16B。
32C.31D.10
6。
设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为____.
A.2hB。
2h—1C。
2h+1D。
h+1
7.对一个满二叉树,m个树叶,n个结点,深度为h,则____.
A.n=h+mB.h+m=2nC。
m=h-1D.n=2h-1
8.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序____。
A。
不发生改变B。
发生改变C。
不能确定D.以上都不对
9.如果某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为____。
A。
uwvtsB。
vwutsC。
wuvtsD.wutsv
10。
二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法____。
A.正确B.错误
11。
某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是____.
A。
bdgcefhaB。
gdbecfhaC。
bdgaechfD.gdbehfca
12。
在一非空二叉树的中序遍历序列中,根结点的右边____。
A。
只有右子树上的所有结点B.只有右子树上的部分结点
C。
只有左子树上的部分结点D。
只有左子树上的所有结点
13。
如图6.1所示二叉树的中序遍历序列是____。
A。
abcdgefB.dfebagcC.dbaefcgD。
defbagc
图6。
1
14。
一棵二叉树如图6。
2所示,其中序遍历的序列为____。
A。
abdgcefhB。
dgbaechfC.gdbehfcaD.abcdefgh
15.设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是。
A.a在b的右方B.a在b的左方
C.a是b的祖先D.a是b的子孙
16.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是____。
A。
acbedB。
decabC.deabcD.cedba
17。
实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用____存储结构。
A。
二叉链表B。
广义表存储结构C。
三叉链表D。
顺序存储结构
18。
如图6。
3所示的4棵二叉树,____不是完全二叉树。
20。
在线索化二叉树中,t所指结点没有左子树的充要条件是____。
A。
t—>left=NULLB。
t—>ltag=1
C。
t->ltag=1且t—>left=NULLD。
以上都不对
21.二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法____。
A。
正确B。
错误
22。
二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。
这种说法____。
A.正确B。
错误
23.具有五层结点的二叉平衡树至少有____个结点。
A。
10B.12C。
15D.17
24。
树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历.这里,我们把由树转化得到的二叉树叫做这棵数对应的二叉树。
结论____是正确的.
A.树的先根遍历序列与其对应的二叉树的先序遍历序列相同
B.树的后根遍历序列与其对应的二叉树的后序遍历序列相同
C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同
D。
以上都不对
25。
树最适合用来表示____。
A。
有序数据元素B。
无序数据元素
C.元素之间具有分支层次关系的数据D。
元素之间无联系的数据
6.2填空题(将正确的答案填在相应的空中)
1.有一棵树如图6。
5所示,回答下面的问题:
⑴这棵树的根结点是____;
⑵这棵树的叶子结点是____;
⑶结点k3的度是____;
⑷这棵树的度是____;
⑸这棵树的深度是____;
⑹结点k3的子女是____;
⑺结点k3的父结点是__
2.指出树和二叉树的三个主要差别____、____、____。
__;
3。
从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是____。
4.一棵二叉树的结点数据采用顺序存储结构,存储于数组t中,如图6。
6所示,则该二叉树的链接表示形式为____.
5.深度为k的完全二叉树至少有____个结点。
至多有____个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是____。
6.在一棵二叉树中,度为零的结点的个数为n0,度为2的结点的个数为n2,则有n0=____.
7.一棵二叉树的第i(i≥1)层最多有____个结点;一棵有n(n〉0)个结点的满二叉树共有____个叶子和____个非终端结点。
8.结点最少的树为____,结点最少的二叉树为____.
9.现有按中序遍历二叉树的结果为abc,问有____种不同形态的二叉树可以得