二叉树——度以及节点数的计算

1.入度与出度

线1
线2
线3
线4
root
B1
C1
B11
B12

线1中靠近root节点的为出度,靠近B1子节点的为入度,即一根线两端就是入度和出度。
则可以理解二叉树中的结论:二叉树中出度等于入度
此外:

  1. 二叉树中,对于一个节点,出度的取值情况有0、1、2。取0时即为叶子结点
  2. 二叉树中,对于一个节点,入度的取值情况有0、1。取0时即为根结点

2. 各分类节点的个数关系

以节点的出度取值对二叉树中的所有节点分类,
n0:出度为0的结点总个数
n1:出度为1的结点总个数
n2:出度为2的结点总个数

则有,
二叉树中总出度为: o u t = n 1 ∗ 1 + n 2 ∗ 2 out=n_1*1+n_2*2 out=n11+n22
二叉树中总结点数为: N = n 0 + n 1 + n 2 N=n_0+n_1+n_2 N=n0+n1+n2

2.1 计算二叉树的总入度

因为除了根节点的入度为0,二叉树其余结点的入度都为1,先假设根节点的入度也为1(注意,实际这个假设肯定不对),那么二叉树的总入度为二叉树结点总数乘以1,即 N ∗ 1 N*1 N1
但实际上根节点的入度为0,计算时计为1,多计了1-0=1,所以要在以上计算入度的基础上减1,即最后得到二叉树的总入度为, i n = N ∗ 1 − 1 = n 0 + n 1 + n 2 − 1 in=N*1-1=n_0+n_1+n_2-1 in=N11=n0+n1+n21

2.2 关系

由1.节中二叉树中入度等于出度可有,
o u t = i n out=in out=in
即,
n 1 ∗ 1 + n 2 ∗ 2 = n 0 + n 1 + n 2 − 1 n_1*1+n_2*2=n_0+n_1+n_2-1 n11+n22=n0+n1+n21
则,
n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1
描述为:二叉树中出度为0的结点个数=出度为2的结点个数+1

3. 题目举例

  1. https://www.nowcoder.com/questionTerminal/1622319f44d046f787d6dc948d0583f3
  2. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数?
    答案: 11 个
<think>嗯,用户问的是二叉树中节点的的概念。首先我得回忆一下二叉树的基本定义。根据引用里的内容,二叉树是每个节点最多有两个子树的树结构。那节点的应该是指这个节点拥有的子节点数目对吧? 我记得引用[2]提到过节点的,是节点拥有的子树数量。在二叉树里,每个节点的最多是2,所以可能的是0、1或2。比如叶节点的就是0,因为它们没有子节点。而分支节点可能有1或2个子节点,所以是1或2。 用户可能对的具体定义不太清楚,需要明确区分普通树和二叉树。在普通树里,节点的没有限制,但二叉树限制了最多两个子节点。所以需要强调二叉树节点的最大为2。 另外,用户可能还混淆了树的和节点的。树的是指整个树中节点的最大,而节点的是单个节点的子节点数。比如如果一个二叉树中有一个节点有两个子节点,其他节点都是1个或0个,那这棵树的就是2。 需要引用正确的资料,比如引用[2]里提到的节点的、叶节点、分支节点这些概念。还有引用[5]里说二叉树是有限集合,由一个根节点加上左右子树组成,这也支持的定义。 可能用户需要例子来理解,所以应该举几个例子说明不同的节点。比如根节点有两个子节点,是2;中间节点有一个子节点,是1;叶子节点是0。 还要注意术语的一致性,比如“子树”在二叉树中通常称为左孩子和右孩子,如引用[1]中的结构体定义用了lchild和rchild,所以就是这两个指针是否存在。 总结回答的结构:先定义节点的,说明在二叉树中的范围,举例不同类型的节点,区分节点的和树的,最后引用相关的资料。这样用户就能清楚理解了。</think>### 二叉树节点的定义 在二叉树中,**节点的**定义为该节点拥有的**子节点数目**。由于二叉树的每个节点最多有两个子节点(左孩子和右孩子),因此节点的只能为 $0$、$1$ 或 $2$[^2][^5]。 #### 具体说明 1. **为0的节点**(叶节点/终端节点): 没有子节点,例如下图中的节点 $D$、$E$、$F$、$G$。 2. **为1的节点**: 仅有一个子节点(左或右),例如下图中的节点 $B$(仅右孩子)。 3. **为2的节点**: 有两个子节点(左和右),例如下图中的节点 $A$ 和 $C$。 ``` A (=2) / \ (=1)B C (=2) \ / \ D E F (D、E、F=0) ``` #### 补充概念 - **树的**:整棵树中所有节点的的最大值。例如,若某二叉树中存在为2的节点,则树的为2。 - **分支节点(非终端节点)**:大于0的节点(即至少有一个子节点)[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值