二叉树的定义

前言

定义:
二叉树是由n(n>=0)个结点组成的有限集合,该集合或者为空,或者是由一个根结点加上两颗分别称为左子树和右子树的,互不相交的二叉树组成

在此之前我们已经实现过了通用树结构,通用树结构中的每个结点都可以有任意多的孩子,都可能具有无线形态,所以很复杂,我们可以简化结点中孩子的数量,之前实现的通用树结构是用双亲孩子表示法来实现的,如下图所示,每个结点都有一个指向双亲的指针,每个结点都有若干个指向其孩子的指针
在这里插入图片描述
除此之外还有一种树结构模型叫孩子兄弟表示法,如下图所示,每个结点都有一个指向其第一个孩子的指针,每个结点都有一个指向其第一个右兄弟的指针,可以看出孩子兄弟表示法能够表示任意的树形结构,每个结点包含一个数据成员和两个指针成员,孩子结点指针和兄弟结点指针构成了"树杈",就是所谓的二叉树,孩子兄弟表示法能够将通用树转化为二叉树
在这里插入图片描述
二叉树还有满二叉树和完全二叉树之分,定义如下
满二叉树
如果二叉树中所有分支结点的度数都为2,且叶子结点都在同一层次上,则称这类二叉树为满二叉树
完全二叉树
如果一颗具有n个结点的高度为K的二叉树,它的每一个结点都与高度为k的满二叉树中编号为1-n的结点一一对应,则称为这棵二叉树为完全二叉树(从上到下从左到右)
在这里插入图片描述

二叉树的深层特性

1
在二叉树的第i层最多有2的i-1次方个结点
2
在二叉树的第i层最多有2的i次方个结点-1个结点
3
对于任何一颗二叉树,如果其叶节点有n0个,度为2的非叶节点有n2个,则有n0=n2+1
4
在这里插入图片描述
5
在这里插入图片描述

二叉树的存储设计

设计要点
BTree为二叉树结构,每个结点最多只有两个后继结点
BTreeNode只包含4个固定的公有成员(一个数据成员,两个指向后继结点的指针成员,一个指向父节点的指针成员便于遍历)
实现树结构的所有操作(增,删,查等)
在这里插入图片描述
BTree.h

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值