著名的二叉树
二叉树是什么?
从字面意思上看来,首先由两个叉,所以简单的来说就是每个节点最多只能有两个叉。
-------------------------------------------------------------------------
图:有向图(有箭头的) 无向图(没有箭头) 环形图(形成了环) 无环图(没有环) 有序对无序对
-------------------------------------------------------------------------
树:有向无环图(计算机中的树和生活中的树是相反的,头部在上面)
分类
1.平衡二叉树:任意一个节点,其左节点层数与右节点的层数相差不能为一
2. 完全二叉树:除了叶子节点之外每个节点都有两个子节点
(叶子节点表示没有子节点的节点)
3. 满二叉树
(1) 所有的层都是满的
(2) 要么没有子节点要么就是满的
代码部分:
基本二叉树结构
结果:
二叉树的描述方式如图:
前序: 首先访问根节点(1,2,4,5,3,6)
大致查找顺序(根节点->左节点->右节点)
-----------------------------------------------------------------------
中序: 中间访问根节点(4,2,5,1,3,6)
大致查找顺序(左节点->根节点->右节点)
-----------------------------------------------------------------------
后序: 最后访问根节点(4,5,2,6,3,1)
大致查找顺序(左节点->右节点->根节点)
-----------------------------------------------------------------------
注:给你前序和后序排列方式会出现多种
-----------------------------------------------------------------------
前序代码的实现
中序代码实现
后序代码实现
总结:不论是前序、中序、后序都是一个递归的过程,只是打印的位置是不同的。
-----------------------------------------------------------------------
给定前中节点,还原二叉树
前: 1 2 4 5 3 6
中: 4 2 5 1 3 6
给定前中节点,还原二叉树
后: 4 5 2 6 3 1
中: 4 2 5 1 3 6