五、特殊二叉树
斜树:所有结点只有左子树的二叉树叫做左斜树,所有结点只有右子树的二叉树叫做右斜树。
如图:
满二叉树:在一棵二叉树中,所有分支结点都有左子树与右子树,并且所有叶子结点都在同一层则为满二叉树。
如图:
完全二叉树:所有叶子节点都出现在 k 或者 k-1 层,而且从 1 到 k-1 层必须达到最大节点数,第 k 层可是不是慢的,但是第 k 层的所有节点必须集中在最左边。
如图:
六、二叉树的遍历
二叉树的遍历主要有三种:先序遍历,中序遍历,后续遍历,接下来我们挨个了解一下。
先序遍历:先访问根结点,再先序遍历左子树,再先序遍历右子树。
如图所示:
先序遍历结果为:ABDGHCEIF
中序遍历:先中序遍历左子树,再访问根结点,再中序遍历右子树。
如图:
中序遍历结果为:GDHBAEICF
后序遍历:先后序遍历左子树,再后序遍历右子树,再访问根结点。
如图:
后序遍历结果:GHDBIEFCA
七、java实现二叉树
先来看看每个结点类:
1 public class TreeNode{ 2 private String data;//自己结点数据 3 private TreeNode leftChild;//左孩子 4 private TreeNode rightChild;//右孩子 5 6 public String getData() { 7 return data; 8 } 9 10 public void setData(String data) { 11 this.data = data; 12 } 13 14 public TreeNode(String data){ 15 this.data = data; 16 this.leftChild = null; 17 this.rightChild = null; 18 } 19 }