二叉树

二叉树的定义:

二叉树是n(n>=0)个有限结点构成的集合。n=0的树称为空二叉树;n>0的二叉树由一个根结点和两个互不相交的、分别被称为左子树和右子树的二叉树构成。


满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上,这样的二叉树称作满二叉树。


完全二叉树:如果一棵具有n个结点的二叉树的结构与满二叉树的前n个结点的结构相同,这样的二叉树称作完全二叉树,显然满二叉树一定是完全二叉树。


完全二叉树的一个性质:对于具有n个结点的完全二叉树,如果按照从上至下和从左至右的顺序对所有的结点从0开始顺序编号,则对于序号为i的结点,有:

(1)如果i>0,则序号为i的结点其双亲结点的序为(i-1)/2("/"表示整除);如果i=0,则序号为i的结点是根结点,无双亲结点。

(2)如果2i+1<n,则序号为i的结点其左孩子的结点序号为2i+1;如果2i+1>=n, 则序号为i的结点无左孩子。

(3)如果2i+2<n,则序号为i的结点其右孩子的结点序号为2i+2,如果2i+2>=n,则序号为i的结点无右孩子。

根据这个性质我们就可以对二叉树进行顺序存储,也就是把二叉树按照上面的编号放到一个数组里。

完全二叉树和顺序存储二叉树的概念是堆排序中大小堆,如何创建堆理解的基础,虽然简单,但是很重要。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值