二叉树入门

来源:互联网 发布:数控车床编程实例初级 编辑:程序博客网 时间:2024/06/06 07:26

树的基本概念

树是模拟实现树干和树枝的一种数据结构,如同树根一样,树结构都有一个“根结点”。根节点之下如同树的树枝一样,可以拥有0到n个“子结点”,也就是树的”分支“
这里写图片描述
如上图。A就是这棵树的根节点,B、C就是结点A的子结点。也就是树枝。每一根树枝当然可以有小树枝,也就是子节点本身可以拥有子结点。途中D和E是B的子结点。反过来说B是D、E的父结点,结点拥有共同的父结点称为“兄弟结点”。所以D和E结点称为兄弟结点。


专业名词
结点:结点包括一个数据元素及若干指向其子树的分支
n元树:树结构的一个结点最多拥有n个子结点。
二叉树:树的结点最多只有两个子结点。
根结点:树之中没有父结点的结点,称为根结点
叶结点:如果某个结点的本身没有子结点,则称为叶节点。
分支结点:度不为0的结点分为分支结点,分支结点也称为非终端结点
孩子结点:树中一个结点的子树的根节点称作这个结点的孩子结点
双亲结点:若树中某结点有孩子结点,则这个结点称作它的孩子结点的双亲结点
兄弟结点:具有相同的双亲结点的结点称为兄弟结点
祖先结点:指结点到根结点所经过的所有结点。
非终端结点:除了叶结点外的其他结点称为非终端结点。
结点的度:指每个结点拥有的子结点数。如上图A的度为2、E的度为1、G的度为0
层数:如上图,A的层数为1、BC的层数为2、DEF的层数为3、GHJ的层数为4
高度:又称为树的深度,这是指树的最大层数。
无序树:树中任意一个结点的各孩子结点之间的次序构成无关紧要的树称为无序树。通常树指的是无序树。
有序树:树中任意一个结点的各孩子结点之间有严格排列次序的树称为有序树。
**森林:**m (m >= 0)课树的集合称为森林。在自然界中,树和森林的概念差别很大;但是在数据结构中,树和森林的概念差别很小。从定义可知,一棵树由根结点和m个子树组成,若把树中的根结点删除,则树就变成了包含m课树的森林。当然,根据定义,一棵树也可以称作森林。


二叉树的基本概念

二叉树是一种特殊的树,一颗二叉树最多拥有2个子结点,也就是度小于或等于2。二叉树分为左子树和右子树。

满二叉树:如果树的高度为H,而且二叉树的结点树为2^H - 1;在不增加树的层数的前提下,无法再多添加一个结点的二叉树就是满二叉树。
这里写图片描述

完全二叉树:如果只删除了满二叉树最底层最右边的连续若干个结点,这样形成的二叉树就是完全二叉树。
这里写图片描述
满二叉树肯定是完全二叉树
完全二叉树不一定是满二叉树

二叉树的性质

1、在二叉树的第i层最多有2^(i - 1)个结点
2、深度为K的二叉树至多有2^K - 1个结点
3、对任何一棵二叉树T,如果其终端结点数为n0, 度为2的结点数为n2。则n0 = n2 + 1;
4、具有n个结点的完全二叉树的深度为[log2^n]+1

1 0