【含例题】树中边、度、点的关系

例题
一棵二叉树,度为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 0N0+1N1+2N2+...+nNn=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=NV1
每个节点都有一条连接父节点的边,而根节点没有,所以要减掉1

root
V1
V2
V3
V4
V5
V6

秒杀例题

例题
一棵二叉树,度为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 1N1+2N2=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=NV1
< = > 316 = N V − 1 <=>316 = N_V - 1 <=>316=NV1
< = > 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值