数据结构之二叉树的定义和性质

通过上一节讲解,我们知道通用树结构是采用双亲孩子表示法模型建立的。每个结点都有一个指向其双亲的指针,每个结点都有

若干个指向其孩子的指针。如下图:


整体实现起来比较复杂,今天我们来讲一下另一种树结构模型:孩子兄弟表示法模型。每个结点都有一个指向其第一个孩子的指

针,每个结点都有一个指向其第一个右兄弟的指针。如下图:


孩子兄弟表示法:每个结点包含一个数据指针和两个结点指针。

1.    数据指针:指向保存于树中的数据;

2.     孩子结点指针:指向第一个孩子;

3.     兄弟结点指针:指向第一个右兄弟。

如下图:

孩子兄弟表示法的特点:

1.能够表示任意的树形结构;

2. 每个结点中有且仅有三个指针域,数据指针,孩子结点指针,兄弟结点指针;

3. 每个结点的结构简单,只有孩子结点指针和兄弟结点指针构成了“树杈”。

孩子兄弟表示法的本质是将通用树转化为二叉树,二叉树是最多只有两个孩子的树。

二叉树的定义:二叉树是由 n ( n ≥0 ) 个结点组成的有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树

右子树的、互不相交的二叉树组成。

二叉树有如下不同的5中状态:空二叉树、仅有根结点的二叉树、右子树为空的二叉树、左子树为空的二叉树以及左、右子树均

非空的二叉树。如下图:

当然二叉树还有比较特殊的二叉树,比如满二叉树和完全二叉树。

满二叉树 (FullBinary Tree):如果二叉树中所有分支结点的度数都为2,且叶子结点都在同一层次上(即一颗深度为k且有2k-1个

结点的二叉树),则称这类二叉树为满二叉树。满二叉树的特点就是每一层的结点数都是最大节点数。

完全二叉树(Complete Binary Tree):如果一棵具有n个结点的高度为k的二叉树,它的每一个结点都与高度为k的满二叉树中编

号为1—n的结点一一对应,则称这棵二叉树为完全二叉树。(从上到下从左到右编号)。


完全二叉树的叶结点仅出现在最下面两层:

1.最下层的叶结点一定出现在左边;

2.倒数第二层的叶结点一定出现在右边。

完全二叉树中度为1的结点只有左孩子,同样结点数的二叉树,完全二叉树的高度最小。

上面我们总结了二叉树的定义,接下来我们说一说二叉树的性质。

二叉树的深层性质:

性质1: 在二叉树的第 i层最多有 2i-1个结点(i ≥ 1)。

• 第一层最多有 21-1=1个结点。

• 第二层最多有 22-1=2个结点。

• 第三层最多有 23-1=4个结点。

……

性质2: 深度为 k的二叉树最多有 2k-1个结点(k ≥ 0)。

• 如果有一层,最多有 1=21-1=1个结点。

• 如果有两层,最多有 1+2=22-1=3 个结点。

• 如果有三层,最多有 1+2+4=23-1=7 个结点。

……

性质3:对任何一棵二叉树,如果其叶结点有n0个,度为2的非叶结点有 n2个,则有 n0=n2+1

证明:假设二叉树中度1的结点有 n1个且总结点为n个,则:n=n0+n1+n2

假设二叉树中连接父结点与子结点间的边为 e条,则:e=n1+2n2 = n – 1。

所以:n0=n2+1。

性质4:具有 n个结点的完全二叉树的高度为

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值