- 若元素a、b、c、d、e、f依次进栈,允许进栈、出栈操作交替进行,但不允许连续3次进行出栈操作,则不可能得到的出栈序列是(D)
A.dcebfa B.cbdaef C.bcaefd D.afedcb
解:A.可由in,in,in,out,out,in,out,out,in,out,out得到;
B.可由in,in,in,out,out,in,out,out,in,out,in,out得到;
C.可由in,in,out,in,out,out,in,in,out,in,out,out得到;
D.可由in,out,in,in,in,in,in,out,out,out得到;出现了连续3次出栈操作,所有选D - 一个栈的入栈序列为1,2,3,……,n,其出栈序列是
。若
,则
可能取值的个数是多少?
A.n-3 B.n-2 C.n-1 D.无法确定
解:可以取1:1进,2进,2出,3进,3出,1出,……
可以取2:1进,1出,2进,3进,3出,2出,……
可以取4:1进,1出,2进,3进,3出,4进,4出,……
可以取5:1进,1出,2进,3进,4出,5出,5出,……
……可以取除了3外的任何值,共有n-1种可能。答案为C。
- 假设在树中,结点x是结点y的双亲时,用(x,y)来表示树边。已知一棵树的树边集合为{(e,i), (b,e), (b,d),(a,b), (g.j),(c.g), (c,f), (h,l), (c,h), (a,c)},用树型表示法表示该树,并回答下列问题:
①哪个是根结点?哪些是叶子结点?哪个是g的双亲?哪些是g的祖先?哪些是g的孩子?那些是e的子孙?哪些是e的兄弟?哪些是f的兄弟?
解:根结点:a;叶子结点:d,i,f,j,l;g的双亲:c;g的祖先:a,c;g的孩子:j;e的孩子:j;e的子孙:i;e的兄弟:d;f的兄弟:g,h;
②b和h的层次各是多少?树的深度是多少?以结点c为根的子树的深度是多少?
解:b的层次:2;h的层次:3;树的深度:4;以结点c为根的子树的深度:3 - 设有如图6-27所示的二叉树。
写出该二叉树的先序、中序、后序遍历序列。
解:先序遍历(根左右):a b d e h k c f g m n
中序遍历(左根右):d b h e k a f c m g n
后序遍历(左右根):d h k e b f m n g c a - 已知一棵二叉树的先序遍历序列和中序遍历序列分别为ABDGHCEFI和GDHBAECIF,请画出这棵二叉树,然后给出该树的后序遍历序列。
解: - 已知一棵二叉树的中序遍历序列和后序遍历序列分别为dgbaekchif和gdbkeihfca,请画出这棵二叉树对应的中序线索二叉树和后序线索二叉树。
解: - 设图6-27所示的二叉树是森林F所对应的二叉树,请画出森林F
解:
8. 假设用于通信的电文是由字符集{A,B,C,D,_ }中的字符构成,这5个字符在电文中出现的概率分别为{0.4,0.1,0.2,0.15,0.15}。
①请画出对应的huffman树(按左子树根结点的权小于等于右子树根结点的权的次序构造),并求其加权路径长度WPL。
②求出每个字符的huffman编码。
解:
9.有主串S='acabaabaabcacaabc'
模式串T='abaabcac'
(1)计算模式串T的next数组
(2)画出利用KMP进行模式匹配的每一趟匹配过程
10.设字符串S='aabaabaabaac'
P='aabaac'
(1)计算S和P的next数组
(2)若S作主串,P作模式串,试给出利用BF算法和KMP算法的匹配过程
11.已知模式串T='abcaabbabcab',写出用KMP算法对应的next和nextval函数值
【解析】
模式串T的next和nextval值如下:
解析:next[j]=匹配字符个数(前缀与后缀进行匹配)+1;nextval[j]第一个必须是0
j | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
模式串 | a | b | c | a | a | b | b | a | b | c | a | b |
next[j] | 0 | 1 | 1 | 1 | 2 | 2 | 3 | 1 | 2 | 3 | 4 | 5 |
nextval[j] | 0 | 1 | 1 | 0 | 2 | 1 | 3 | 0 | 1 | 1 | 0 | 5 |
12.设一有向图G=(V,E),其中V={a,b,c,d,e},E={<a,b>,<a,d>,<b,a>,<c,b>,<c,d>,<d,e>,<e,a>,<e,b>,<e,c>}
①请画出该有向图,并求各顶点的入度和出度
②画出邻接矩阵
③分别画出有向图的正邻接表和逆邻接表
13.对于图1所示的带权无向图:
①写出该带权无向图的邻接矩阵表示
②按照Prim算法给出从顶点2开始构造最小生成树的过程
③按照Kruskal算法给出最小生成树的过程
14.已知带权有向图如图2所示,请利用Dijkstra算法从顶点出发到其余顶点的最短路径及长度,并画表给出相应的求解步骤
15.拓扑排序的结果不是唯一的,请给出如图3所示的有向无环图的五种可能的拓扑序列
16.假设一个工程的进度计划用AOE网表示,如图4所示
请求出ve(i)、vl(i)、e(i)、l(i),给出全部的关键路径