C语言数据结构——二叉树

45 篇文章 5 订阅
3 篇文章 0 订阅

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

2、二叉树的特点:
(1)每个结点最多有两棵子树,不存在度大于2的结点;
(2)左子树和右子树是有顺序的,次序不能任意颠倒;
(3)即使树中某个结点只有一棵子树也要区分它是左子树还是右子树。

3、二叉树具有五种基本形态:
(1)空二叉树;
(2)只有一个根节点;
(3)根节点只有左子树;
(4)根节点只有右子树;
(5)根节点既有左子树又有右子树。

4、特殊的二叉树:
(1)斜树:所有结点都只有左子树的二叉树叫做左斜树,所有结点都只有右子树的二叉树叫做右斜树。
(2)满二叉树:在一棵二叉树中所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。【在同样深度的二叉树中,满二叉树的结点个数最多,叶子数最多】
(3)完全二叉树:对于一棵具有n个结点的二叉树按层序编号,如果编号为 i (1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中的位置完全相同,则这课二叉树称为完全二叉树。

5、二叉树的性质:
(1)在二叉树的第 i 层上至多有2^(i-1)个结点;
(2)深度为 k 的二叉树至多有(2^k)-1个结点;
(3)对任何一棵二叉树T,如果其终端结点的数为n0,度为2的结点数为n2,则n0=n2+1。树T的结点总数为: n=n0+n1+n2;
(4)具有n个结点的完全二叉树的深度为[log2n]+1;
(5)若对于一棵有n个结点的完全二叉树的结点按层序编号,对于任意结点i有:【1】若i=1,则结点i是二叉树的根,无双亲;若i>1,则双亲是结点[i/2];【2】若2i>n,则结点i无左孩子,否则左孩子是结点2i;【3】若2i+1>n,则结点i无右孩子;否则右孩子是结点2i+1.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值