第6章 树 练习题
##选择题
某二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树一定是( )。
A. 空
B. 深度等于其结点数
C. 只有一个结点
D. 完全二叉树
解:
如上图,只有一个节点 属于 **深度等于其结点数 **的特殊情况。
答案:B
##填空题
300 个结点的完全二叉树的叶结点有( )个。
解:设二叉树中度为0、1、2的结点个数分别为
n
0
,
n
1
,
n
2
n_{0},n_{1},n_{2}
n0,n1,n2
因此
n
0
+
n
1
+
n
2
=
300
n_{0} + n_{1} + n_{2} = 300
n0+n1+n2=300
按照二叉树的性质 :
n
0
=
n
2
+
1
n_{0} = n_{2} + 1
n0=n2+1
代入得:
2
n
2
+
1
+
n
1
=
300
2n_{2} + 1 + n_{1} = 300
2n2+1+n1=300
因为完全二叉树中度为1的结点个数最多1个,因此满足上式只能是
n
1
=
1
n_{1} = 1
n1=1
所以
n
2
=
149
,
n
0
=
150
n_{2} = 149,n_{0} = 150
n2=149,n0=150
答案:150
对于一个有n个结点的二叉树,当它为一棵( )二叉树时具有最小高度。
解:本题做错的主要原因是未能正确认识 满二叉树
与 **完全二叉树
**的区别。
满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为 k k k,且结点总数是$2^k-1 $,则它就是满二叉树。
完全二叉树 : 若设二叉树的深度为 h h h ,除第 h h h 层外,其它各层 $ (1 ~ h-1) $的结点数都达到最大个数,第 $h $层所有的结点都连续集中在最左边,这就是完全二叉树。
此图摘自百度百科
满二叉树中不能有**只有一个孩子节点
**的节点,每层都满,而完全二叉树中可以有。
简而言之:满二叉树肯定是完全二叉树,完全二叉树不一定是满二叉树。
答案:完全
第7章 图 练习题
##选择题
下面关于求关键路径的说法不正确的是( )。
A.求关键路径是以拓扑排序为基础的
B.一个事件的最早发生时间同以该事件为尾的弧的活动最早开始时间相同
C.一个事件的最迟发生时间为以该事件为尾的弧的活动最迟开始时间与该活动持续时间的差.
D.关键活动一定位于关键路径
解:本题错误的主要原因是没有搞清楚**弧头
与弧尾
**的概念。
箭头所指,为**弧头
。
顶点表示事件
,弧表示活动
**,权表示活动持续时间。
正确表述应为:当前时间最迟开始时间 = 当前事件的后继事件的最迟开始时间 - 活动持续时间。
其余选项正确,可作为知识点记忆。
答案:C
若一个图的边集为(A,B),(A,C),(B,D),(C,F),(D,E),(D,F),则从顶点A开始对该图进行广度优先搜索,得到的顶点序列可能为______。
A.A,B,C,D,E,F
B.A,B,C,F,D,E
C.A,B,D,C,E,F
D.A,C,B,F,D,E
解:画图
对图的广度优先遍历方法描述为:从图中某个顶点v出发,在访问该顶点v之后,依次访问v的所有未被访问过的邻接点,然后再访问每个邻接点的邻接点,且访问顺序应保持先被访问的顶点其邻接点也优先被访问
,直到图中的所有顶点都被访问为止。
先排除 C ,开头只能是A,B,C或A,C,B,且最后一个必为 E,也排除A。
先遍历 A ,然后 B 和 C 任意选择一个继续, 若选了B,则应先遍历 B 的 邻接点 D,若选了 C 则应先遍历 C 的 邻接点 F。所以,只能为**A,B,C,D,F,E
,或A,C,B,F,D,E
**。
答案:D
第9章 查找 练习题
##选择题
若根据查找表建立长度为m的哈希表,采用线性探测法处理冲突,假定对一个元素第一次计算的哈希地址为d,则下一次的哈希地址为( )。
A. d
B. d+1
C. (d+1)/m
D. (d+1)%m
解:粗心错误,线性探测法是对于表长进行运算,是求模除,下次注意看清符号,愚蠢的错误。
答案:D
##填空题
对长度为 n n n 的查找表进行查找时,假定查找第i个元素的概率为 p i p_i pi ,查找长度(即在查找过程中依次同有关元素比较的总次数)为 c i c_i ci ,则在查找成功情况下的平均查找长度的计算公式为( )。
解:简单公示考察,知识点掌握不牢固,误以为是
(
∑
i
=
1
n
p
i
c
i
)
/
n
(\sum\limits_{i=1}^np_ic_i) / n
(i=1∑npici)/n
那个
“
/
n
”
“/n”
“/n”是因为之前计算
A
S
L
ASL
ASL 总会看到
/
n
/n
/n,那其实是因为
p
i
=
1
/
n
p_i=1/n
pi=1/n,等概率,异想天开。
答案:$ \sum\limits_{i=1}^np_ic_i$
##应用题
有关键字集合K={7,15,23,6,13,20}采用散列存取,散列表长为8,设散列函数$H(K)=K $ M O D MOD MOD 7 7 7,解决冲突采用开放地址法中的一次线性探测再散列的方法,书写每个关键字的哈希值的计算过程,并将K值填入表中,最后计算查找成功时的平均查找长度。
答案:
哈希表:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
7 | 15 | 23 | 23 | 6 | 13 |
H
a
s
h
Hash
Hash(7) = 7 % 7 = 0
H
a
s
h
Hash
Hash(15) = 15 % 7 = 1
H
a
s
h
Hash
Hash(23) = 23 % 7 = 2
H
a
s
h
Hash
Hash(6) = 6 % 7 = 6
H
a
s
h
Hash
Hash(13) = 13 % 7 = 6
H
1
H1
H1 = (6+1) % 8 = 7
H
a
s
h
Hash
Hash(20) = 20 % 7 = 6
H
1
H1
H1 = (6+1) % 8 = 7
H
2
H2
H2=(6+2) % 8= 0
H
3
H3
H3=(6+3) % 8 = 1 $ H4$=(6+4) % 8=2
$ H5 $= (6+5) % 8 = 3
A S L = ( 1 ∗ 4 + 2 ∗ 1 + 6 ∗ 1 ) / 6 = 2 ASL = (1*4 + 2*1 + 6*1) / 6 = 2 ASL=(1∗4+2∗1+6∗1)/6=2
切记:一共计算了几次,就是进行了几次比较。
#结语
注意总结,吸取教训,第9章练习题做的惨不忍睹,荒唐可笑的错误层出不穷,因为一个知识点丢掉了十几分甚至几十分,别睡了,醒醒了。
勿急躁,最近心情与身体状况不佳,调养生息,静心凝神,不可懈怠。
2017.11.25