class Node{

V value;

Node left;

Node reight;

}

用递归和非递归两种方式实现二叉树的先序,中序,后续遍历

如何直观的打印一颗二叉树

如何完成二叉树的宽度优先遍历

递归序列 先序是出现的第一个数字,中序第二个,后续第三个

先序遍历(根左右)

中序遍历(左根右)

后续遍历(左右根)

先序遍历:

1.从栈中弹出一个节点car

2.打印处理car

3.先右再左

4.周而复始

中序遍历过程

得到一棵树,整棵树左边界进栈 ,一次弹出节点的过程中,打印,对弹出节点的右数周而复始,在弹出之后没有右节点弹出,有右节点看这个右节点有没有连着左节点,然后依次入栈,出栈就打印,一直是左根(右(左根(右(左根)))不断的分解右侧的节点,最终打印出来就也是左根右的结构

后序遍历过程:设置两个栈,第二个栈作为回收站,第一个栈采用根右左的顺序进栈出栈,出去的全都按照出栈顺序压到回收栈里面,当全部完事之后,输出回收站,就会得到左右根,得到后序遍历

求一颗二叉树的宽度

后面还会有二叉树的判断,一些简单烧脑的算法,都有总结出来哦

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部