二叉树特点:每个结点最多有两棵子树,所以二叉树 中不存在度(子孩子)大于2的结点。注意不是只有两棵子树,而是最多有。没有子树 或者有一棵子树都是可以的~
左子树和右子树是有顺序的,次序不能任意颤倒。就像人是双手、双脚,但显然左手、左脚和右手、右脚是不一样。
即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。
特殊二叉树
1、斜树,斜树一定要是斜的,但是往哪斜还是有讲究。所有的结点都只有左子树的二叉树叫左斜树。所有的结点都是只有右子树的树的二叉树叫右斜树 。这两者统称为斜树 。斜树有很明显的特点,就是每一层都只有一个结点,结点的个数与二叉树的深度相同。
2、满二叉树,在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。
3、完全二叉树,对一棵具有N个结点的二叉树按层序编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树
特点是1)叶子结点只能出现在最下两层。2)最下层的叶子一定集中在左路部连续位置。3)倒数二层,若有叶子结点,一定都在右部连续位置。4)如果结点度为1,则该结点只有左孩子,则不存在只有右子树的情况5)同样结点数的二叉树,完全二叉树的深度最小
二叉树遍历
1.前序遍历,规则是若二叉树 为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。
2.中序遍历,规则是若二叉树 为空,则空操作返回,否则从根结点开始向下找左子树的结点开始,然后访问根结点,最后中序遍历右子树
3.后序遍历,规则是若树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左右子树,最后是访问左右子树,最后访问根结点
4.层次遍历,规则是若树为空,则空操作返回,否则从树的第一层,也就是根结点开始访问,从上而下逐层遍历,在同一层中,按从左到右的顺序对结点逐个访问
https://www.cnblogs.com/yaobolove/p/6213936.html java实现二叉树遍历的三种