树和二叉树:二叉树的概念
二叉树的定义
二叉树是有限的节点集合(递归定义)
- 这个集合或者是空
- 或者由一个根节点和两棵互不相交的称为左子树和右子树的二叉树组成
二叉树的5种基本形态:
二叉树是可以采用树的逻辑结构表示法,其4种表示法如下:
- 树形表示法
- 文氏图表示法
- 凹入表示法
- 括号表示法
二叉树和2次树有什么区别?
- 度不同
度为2的树要求每个节点最多只能有两棵子树,并且至少有一个节点有两棵子树。二叉树的要求是度不超过2,节点最多有两个叉,可以是1或者0 - 分支不同
度为2的树有两个分支,但分支没有左右之分;一棵二叉树也有两个分支,但有左右之分,左右子树的次序不能随意颠倒 - 次序不同
度为2的树从形式上看与二叉树很相似,但它的子树是无序的,而二叉树是有序的。即,在一般树中若某节点只有一个孩子,就无需区分其左右次序,而在二叉树中即使是一个孩子也有左右之分
两种特殊的二叉树
1.满二叉树: 在一棵二叉树中:
- 如果所有分支节点都有双分节点
- 并且叶节点都集中在二叉树的最下一层
满二叉树: 在一棵二叉树中,高度为h的二叉树恰好有2^h-1个节点
2.完全二叉树: 在一棵二叉树中:
- 最多只有下面两层的节点度数小于2
- 并且最下面一层的叶节点都依次排列在该层最左边的位置上
完全二叉树实际上是对应的满二叉树删除叶节点层最右边若干个节点得到的
二叉树性质
性质1 非空二叉树上叶节点树等于双分支节点数加1。即:n0=n2+1
性质2 非空二叉树上第i层上至多有2^(i-1)个节点(i>=1)
由树的性质2可推出
性质3 高度为h的二叉树至多有2^h-1个节点(h>=1)
由树的性质3可推出
性质4 完全二叉树性质(含n为节点):
二叉树与树,森林之间的转换
1.森林,树转换为二叉树
2.二叉树还原为森林,树