树与二叉树相关概念

树是n( n >= 0 )个节点的有限集合。在任意一颗非空树中

(1)    有且仅有一个特定的称为根的节点

(2)    当 n > 1 时,其余节点可分为m( m > 0 )个互不相交的有限集 T1、T2…Tm,其中每一个集合本身又是一棵树,并且称为根的子树。

 

术语

根              根节点(没有前驱)

叶子         又叫终端节点(没有后继, 度为0)

森林         m( m >= 0 )棵互不相交的树的集合(对树中的每个节点而言,其子树的集合即为森林)

有序树     树中节点的各子树从左至右有序,不能互换(左为第一)

无序树     树中节点的各子树可互换位置

双亲         树中除跟节点外节点的直接前驱节点

孩子         节点的子树的根节点(节点的直接后驱节点)

兄弟         同一双亲下的同层节点(孩子之间互称兄弟)

堂兄弟     双亲位于同一层的节点(并非同一双亲)

祖先         从根节点到该节点所经分支的所有节点

子孙         该节点下层子树中任一结点

结点         树的数据元素

 

结点的度         节点拥有的子树数(即有几个直接后继)

节点的层次     从根到该节点的层数(根节点为第1层)

终端节点         度为0的节点(叶子)

分支节点         度不为0的节点(又叫非终端节点)

内部节点         除根节点外的分支节点

树的度              所有节点度中的最大值

树的深度       所有节点中最大的层数

 

 

二叉树

是n( n >= 0 )个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成

 

种基本形态

空、仅有根节点、根的左子树为空、根拥有非空左右子树、根的右子树为空

 

特征

1、  每个节点最多只有两颗子树(不存在度大于2的节点)

2、  左子树和右子树次序不能颠倒(为有序树)

 

性质

1、二叉树第i层上的结点数目最多为2i-1( i >= 1 )

证明:用数学归纳法证明:

   归纳基础:i=1时,有2i-1=20=1因为第1层上只有一个根结点,所以命题成立。

     归纳假设:假设对所有的j(1j<i)命题成立,即第j层上至多有2j-1个结点,可以j=i时命题亦成立。

     归纳步骤:根据归纳假设,第i-1层上至多有2i-2个结点。由于二叉树的每个结点至多有两个孩子节点,故第i层上的结点数至多是第i-1层上的最大结点数的2倍。即j=i时,该层上至多有2×2i-2=2i-1个结点,故命题成立

 

2、深度为k的二叉树至多有2k-1个结点( k>= 1 )

证明:当每一层都含有最大结点数时,其树中结点数最多。因此利用性质1可得,深度为k的二叉树的结点数至多为:

                20+21++2k-1=2k-1  ===》(  等比数列求和公式 q=1时,Sn=n*a1  q1时,Sn=a1(1-q^n)/(1-q)   )

    故命题正确。

 

3、在任意-棵二叉树中,如果终端结点的个数为n0,度为2的结点数为n2,则no = n2 + 1

证明:因为二叉树中所有结点的度数均不大于2,所以结点总数(记为n)应等于0度结点数、1度结点(记为n1)2度结点数之和:

                     n=no+n1+n2 (式子1)

   另一方面,0度结点没有孩子,1度结点有一个孩子,2度结点有两个孩子,故二叉树中孩子结点总数是:

                      n1+2n2

  树中只有根结点不是任何结点的孩子,故二叉树中的结点总数又可表示为:

                      n=n1+2n2+1 (式子2)

  由式子1和式子2得到:

                      no=n2+1

 

二叉树的两种特殊情形

满二叉树

一颗深度为K且含有2k-1个节点的二叉树

特点:每一层上的节点数都是最大节点数

 

完全二叉树

深度为k的有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中编号从1至n的节点一一对应时,该二叉树为完全二叉树

(也就是说以深度为k的满二叉树为模型,对满二叉树从上到下从左到右连续编号,然后拿一个二叉树类比满二叉树编号,即使二叉树的某个节点缺失,缺失的节点也占一个编号,如果编号完成的二叉树的节点的编号是连续的,那么他就是一颗完全二叉树)

 

满二叉树也是完全二叉树

 

完全二叉树的性质

1、具有n个节点的完全二叉树的深度为⌊log2n⌋ + 1

2、如果对一颗有n个节点的完全二叉树(其深度为⌊log2n⌋ + 1)的结点按层序编号(从第1层到第⌊log2n⌋ + 1层,每层从左到右),则对任一节点(1 <= I <= n), 有:

1)    如果i = 1, 则节点i是二叉树的根,无双亲,如果i > 1, 则其双亲是节点⌊i/ 2⌋

2)    如果2i > n, 则节点i无左孩子(节点i为叶子节点),否则其左孩子是节点2i

3)        如果2i + 1 > n, 则节点i无右孩子,否则其右孩子是节点2i + 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值