二叉树基本概念

一、树的基本概念

(1)树(Tree)的概念:树是一种递归定义的数据结构,是一种重要的非线性数据结构。

       树可以是一棵空树,它没有任何的结点;也可以是一棵非空树,至少含有一个结点。

(2)根(Root):有且仅有一个结点的非空树,那个结点就是根。

(3)子树(Subtree):在一棵非空树中,除根外,其余所有结点可以分为m(m≥0)个互不相交的集合。每个集合本身又是一棵树,称为根的子树。

(4)结点(Node):表示树中的元素及若干指向其子树的分支。

(5)结点的度(Degree):一个结点拥有的子树数目称为该结点的度。

(6)叶子结点(Leaf):度为0的结点。

(7)孩子(Child):结点子树的根称为该结点的孩子。

(8)双亲(Parents):孩子结点的上层结点叫该结点的双亲。

(9)兄弟(Sibling):同一双亲的孩子。

(10)树的度:一棵树中最大的结点度数。

(11)结点的层次(Level):从根结点开始定义根为第一层,它的孩子为第二层,依此类推。

(12)深度(Depth):树中结点最大层次的值。

(13)有序树:树中的各子树自左向右有序的称为有序树。

(14)无序树:树中的各子树自左向右无序的称为无序树。

(15)森林(Forest):是m(m≥0)棵互不相交的树的集合。

(16)祖先:是指从根结点到该结点之间所有的结点。


如图所示:

A是根结点,A结点的度是3,D结点的度是3;因为3是结点的度的最大值,所以这棵树的度是3;E、G、H、I、K、L和M是叶子结点。A在树的第一层,B、C、D在树的第二层,E、F、G、H、I、J在树的第三层,K、L、M在树的第四层;树的深度是4。树从左往右是有序的,这是一棵有序树;E结点的祖先是A、B。


二、二叉树(Binary Tree)

      概念:二叉树又叫二分树,它的特点是每个结点最多只有二棵子树,也就是二叉树中没有度大于2的结点。二叉树的子树有左右之分,严格区分左孩子、右孩子,其次序不能颠倒。

二叉树有5种形态:

(1)空二叉树。

(2)只有一个根结点。

(3)只有根结点和左子树。

(4)只有根结点和右子树。

(5)有根结点和左、右子树。


满二叉树

     概念:一棵深度为k且有2k-1个结点的二叉树称为满二叉树。


完全二叉树

     概念:如果有深度为k的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时,称为完全二叉树。


二叉树的性质

(1)在二叉树的第i层上至多有2i-1(i ≥1)。

(2)深度为k的二叉树至多有2k-1个结点(k≥1)。

(3)对任何一棵二叉树,如果n0、n1、n2分别表示度数为0、1、2的结点树,则有n0=n2+1。

(4)具有n个结点的完全二叉树的深度为log2n + 1。

(5)如果对一棵有n个结点的完全二叉树,则对任一结点i(1≤i≤n)有:

       <1> 如果i=1,则结点i是二叉树的根结点,无双亲;如果i>1,则双亲PARENT(i)是结点i/2。

       <2> 如果2i>n,则结点i无左孩子(结点i为叶子结点);否则其左孩子LCHILD(i)结点2i。

       <3> 如果2i+1>n,则结点i无右孩子;否则其右孩子RCHILD(i)是结点2i+1。


总结:

(1)树的基本概念:

a、节点:叶子节点、根节点

b、度

c、深度(层次)

d、子树

e、孩子、双亲

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值