class Node{
V value;
Node left;
Node reight;
}
用递归和非递归两种方式实现二叉树的先序,中序,后续遍历
如何直观的打印一颗二叉树
如何完成二叉树的宽度优先遍历
递归序列 先序是出现的第一个数字,中序第二个,后续第三个
先序遍历(根左右)
中序遍历(左根右)
后续遍历(左右根)
先序遍历:
1.从栈中弹出一个节点car
2.打印处理car
3.先右再左
4.周而复始
中序遍历过程
得到一棵树,整棵树左边界进栈 ,一次弹出节点的过程中,打印,对弹出节点的右数周而复始,在弹出之后没有右节点弹出,有右节点看这个右节点有没有连着左节点,然后依次入栈,出栈就打印,一直是左根(右(左根(右(左根)))不断的分解右侧的节点,最终打印出来就也是左根右的结构
后序遍历过程:设置两个栈,第二个栈作为回收站,第一个栈采用根右左的顺序进栈出栈,出去的全都按照出栈顺序压到回收栈里面,当全部完事之后,输出回收站,就会得到左右根,得到后序遍历
求一颗二叉树的宽度
后面还会有二叉树的判断,一些简单烧脑的算法,都有总结出来哦