关于一些数据结构中树的小练习与知识点,不定期更新总结内容
1、前中后缀表达式
中:A-B/C+D*E
加完整括号:((A-(B/C))+(D*E))
移动符号并去掉括号
前:+(-(A/(B C))*(D E)) ------> +-A/BC*DE
后:((A (B C)/)-(D E)*)+ ------> ABC/-DE*+
2、一棵树的度是可以小于2的
3、100个结点的完全二叉树采用顺序存储,从1开始按层次编号,则编号最小的叶子结点的编号应该是(51)
【叶子节点是不作为根的结点,它没有左右儿子。如果编号100的结点是左儿子,那么父结点编号是50,此时编号最小的叶子结点编号是51;如果编号100的结点是右儿子,父结点编号同为50,则编号最小的叶子节点编号是51】
5、对任意一棵有n个结点的树,这n个结点的度之和为(n-1)
6、由3 个结点可以构造出(2)种形态不同的无序树
【(1)祖父-父-子;(2)父-左右儿子(两兄弟)】
7、由3 个结点可以构造出(12)种不同的有序树
【3个结点的排列为
A
3
3
=
6
,
A_3^3=6,
A33=6,乘上2种形态,所以12种不同形态的有序树】
8、由3 个结点可以构造出(5)种形态不同的二叉树,(30)种不同的二叉树
【两层二叉树1种形态,三层二叉树4种形态(左/右儿子分类讨论!)】
【考虑有序性,三个的排列为
A
3
3
A_3^3
A33=6,乘上5种不同形态,所以一共30种不同的二叉树】
9、前缀编码:对字符集进行编码时,要求字符集中任一字符的编码都不是其它字符的编码的前缀
eg.{0,1101,1110,1100,1111}
10、叶子结点数
n
0
n_0
n0=度为2的结点数
n
2
n_2
n2+1
【某结点的度:分支数(
≤
2
\le2
≤2),则 总结点数
n
s
n_s
ns=度为0结点数
n
0
n_0
n0(叶子节点数)+度为1结点数
n
1
n_1
n1+度为2结点数
n
2
n_2
n2。紧接着考虑二叉树中的线:总线数
n
s
n_s
ns-1=结点度为1的线数
n
1
n_1
n1+度为2的线数
2
n
2
2 n_2
2n2,联立可得:
n
0
=
n
2
+
1.
n_0=n_2+1.
n0=n2+1.】
11、有10个叶子结点的哈夫曼树,总结点个数是(19).
【参考10中的解析:
n
0
=
10
⇒
n
2
=
n
0
−
1
=
9
,
又
n
1
=
0
⇒
n
s
=
n
0
+
n
1
+
n
2
=
19.
n_0=10 \Rightarrow n_2=n_0-1=9,又n_1=0 \Rightarrow n_s=n_0+n_1+n_2=19.
n0=10⇒n2=n0−1=9,又n1=0⇒ns=n0+n1+n2=19.】
待更新…