例题
一棵二叉树,度为2结点数为70,度为1结点数为176,则叶子结点数为( ).A.71
B.69
C.175
D.177
在做这道题之前,要先理解一棵树中点数、度数和边数的关系。
对一棵n度树,设0度点(叶子节点)数量为 N 0 N_0 N0,1度点数量为 N 1 N_1 N1……n度点为 N n N_n Nn,列三个方程,即可求解节点数、度数、边数中的未知量。
1)节点数方程:
N 0 + N 1 + N 2 + . . . + N n = Σ i = 1 n N i = N V N_0 + N_1 + N_2 + ... + N_n = \Sigma_{i=1}^{n}Ni = N_V N0+N1+N2+...+Nn=Σi=1nNi=NV
意义:各度数的节点的数量加起来,等于总节点数( N V N_V NV, number of vertices)
下图中 N V = 7 , N 0 = 4 , N 1 = 0 , N 2 = 3 N_V=7,N_0=4,N_1=0,N_2=3 NV=7,N0=4,N1=0,N2=3
2)度数方程:
0 ∗ N 0 + 1 ∗ N 1 + 2 ∗ N 2 + . . . + n ∗ N n = N E 0 * N_0 + 1 * N_1 + 2 * N_2 + ... + n * N_n = N_E 0∗N0+1∗N1+2∗N2+...+n∗Nn=NE
意义:各度数节点的数量乘上对应度数之和,等于总度数(Ne, number of edges)
下图中 N E = 6 N_E=6 NE=6
3)度数与边数方程:
N
E
=
N
V
−
1
N_E = N_V - 1
NE=NV−1
每个节点都有一条连接父节点的边,而根节点没有,所以要减掉1
秒杀例题
例题
一棵二叉树,度为2结点数为70,度为1结点数为176,则叶子结点数为( ).A.71
B.69
C.175
D.177
还是一样的例题,不过我们已经有备而来。
首先,这是一棵二叉树,所以每个节点的度数只可能是0,1,2
接着,标出已知量
N
1
=
176
,
N
2
=
70
N_1=176,N_2=70
N1=176,N2=70,要求的是
N
0
N_0
N0
然后,列三道方程:
1)节点数:
N
0
+
N
1
+
N
2
=
N
V
N_0+N_1+N_2=N_V
N0+N1+N2=NV
<
=
>
N
0
+
176
+
70
=
N
V
<=> N_0 + 176 + 70 = N_V
<=>N0+176+70=NV ①
2)度数:
1
∗
N
1
+
2
∗
N
2
=
N
E
1 * N_1 + 2 * N_2 = N_E
1∗N1+2∗N2=NE
<
=
>
176
+
140
=
N
E
<=>176+140=N_E
<=>176+140=NE
<
=
>
N
E
=
316
<=>N_E=316
<=>NE=316
3)度边数:
N
E
=
N
V
−
1
N_E = N_V - 1
NE=NV−1
<
=
>
316
=
N
V
−
1
<=>316 = N_V - 1
<=>316=NV−1
<
=
>
N
V
=
317
<=>N_V=317
<=>NV=317
代回到①中:
N
0
+
176
+
70
=
N
V
=
317
N_0 + 176 +70 =N_V = 317
N0+176+70=NV=317
<
=
>
N
0
=
71
<=>N_0=71
<=>N0=71
最终得到本题答案为A