数据结构与算法学习总结(七)——二叉树的概念

二叉树的定义

二叉树(binary tree)由结点的有限集合构成

这个有限集合或者为空集(empty),或者为由一个根节点(root)及两颗互不相交、分别称作这个根的左子树(left bustree)和右子树(right subtree)的二叉树组成的集合。

二叉树的五种基本形态

二叉树可以是空集合,因此根可以有空的左子树或右子树,或者左右子树都为空。

数据结构与算法学习总结(七)——二叉树的概念_第1张图片

二叉树相关术语

结点

-子结点、父结点、最左子结点

:若∈r,则称k是k'的父结点(或"父母"),而k'则是k的子结点(或"儿子"、"子女")

-兄弟节点、左兄弟、右兄弟

:若有序对都∈r,则称K'和K''互为兄弟结点。

-分支结点、叶子结点

:没有子树的节点称为叶子结点(或树叶、终端结点)

:非终端结点称为分支结点

两个节点的有序对,称作边

路径、路径长度

除结点k0外的任何节点k ∈K,都存在一个结点序列k0,k1,...,ks,使得k0就是树根,且ks=k,其中有序对∈r(1<=i<=s)。这样的结点序列称为从根到结点k的一条路径,其路径长度为s(包含的边数)。

祖先、后代

若有一条由k到达ks的路径,则称k是ks的祖先,ks是k的子孙

层数

根为第0层,其他结点的层数等于其父结点的层数加1

深度

层数最大的叶子结点的层数

高度

层数最大的叶子结点的层数加1

满二叉树

如果一棵二叉树的任何结点,或者是树叶,或者恰有两颗非空子树,则此二叉树称为满二叉树

数据结构与算法学习总结(七)——二叉树的概念_第2张图片

完全二叉树

最多只有最下面的两层结点度数可以小于2

最下一层的结点都集中最左边

 

数据结构与算法学习总结(七)——二叉树的概念_第3张图片数据结构与算法学习总结(七)——二叉树的概念_第4张图片

扩充二叉树

所有空子树,都增加空树叶

外部路径长度E和内部内径长度I的关系满足:E=I+2n(n是内部结点个数)

数据结构与算法学习总结(七)——二叉树的概念_第5张图片

二叉树的主要性质

  1. 在二叉树中,第i层上最多有2的i次方个结点(i>=0)
  2. 深度为k的二叉树至多有2的(k+1)次方减1个结点(k>=0),其中深度(depth)定义为二叉树中层数最大的叶子结点的层数。
  3. 一棵二叉树,如果终端结点数为n0,度为2的节点数为n2,则n0=n2+1
  4. 满二叉树定理:非空满二叉树树叶数目等于其分支结点数加1
  5. 满二叉树定理推论:一个非空二叉树的空子树数目等于其结点数加1
  6. 有n个结点(n>0)的完全二叉树的高度为log2(n+1),深度为[log2(n+1)]-1

 

 

 

ps:复习考研了,目标是北邮计算机的非全,可能得等学习到专业课的部分才会继续更新博客了,加油吧!

你可能感兴趣的:(数据结构与算法)