1.树与二叉树
结点的度:一个结点的有几个孩子(孙子不算)
树的度:所有结点中,其中一个结点最大的度
叶子结点:没有孩子的结点
分支结点:左右分支的结点
内部结点:夹在中间的结点,既不是叶子和根结点
父结点:作为父亲的结点
子结点:作为孩子的结点
兄弟结点:同一个父亲的结点
层次:树的层次
2.二叉树的性质
2.1 分类
满二叉树:结点都是满的的二叉树
完全二叉树:结点按顺序分布的,但是没有满的二叉树
非完全二叉树:结点没有按顺序分布的二叉树
3.二叉树的遍历
前序遍历:根节点最先访问,即根-左-右
中序遍历:根结点中间访问,即左-根-右
后序遍历:根结点最后访问,即左-右-根
层次遍历:一层一层访问
图上结果:
前:1 ,2 ,4 ,5,7 ,8 ,3, 6
中:4 ,2 ,7 ,8, 5,1 , 3, 6
后:4 ,8, 7, 5 ,2, 6 ,3 ,1
层次:1, 2, 3 ,4 ,5 ,6 ,7 ,8
3.2二叉树的反向构造
反向构造:就是知道其中两种遍历,来构建二叉树(必须有中序遍历,否则不能推出)
下图:先看前序遍历的A为根结点,所以中序遍历中,A的左边为左子树,右边为右子树,依次推下面的
结果:
4.普通树转成二叉树
树转二叉树的两个个原则:
1.普通树的孩子结点变成新二叉树的左子树结点
2.普通树的兄弟结点变成新二叉树的右子树结点
看起来很抽象,下面用例子分析
如下图:
普通树的根结点是1,孩子结点有2, 3 , 4
那么(根据原则1)先把2拿出来,作为新二叉树左子树结点,而在普通树中3作为2的兄弟,所以在新二叉树中3(根据原则2)只能做2的右子树,
接下来3有5, 6 ,7三个孩子结点,同理,5作为新二叉树的左子树,而在普通树中6作为5的兄弟,所以在新二叉树中6(根据原则2)只能做5的右子树,依次类推,得出新的二叉树的结构