标签:非递归 出栈 等于 中序遍历 中间 bsp 递归 左右 实现
1 二叉树的前序遍历
对于每棵子树,先处理根,然后处理左子树,最后处理右子树。根最先访问,所以是前序遍历。
2 二叉树的中序遍历
对于每棵子树,先处理左子树,然后处理根,最后处理右子树。根中间访问,所以是中序遍历。
3 二叉树的后序遍历
对于每棵子树,先处理左子树,然后处理右子树,最后处理根。根最后访问,所以是后序遍历。
4 二叉树后序遍历的非递归实现
如果pre为NULL:
左右儿子都是NULL,那么自己出栈;
如果左儿子为NULL,右儿子不为NULL,右儿子进栈;
如果左儿子不为NULL,那么左儿子进栈;
如果pre不为NULL:
如果左右儿子都是NULL,那么自己出栈;
如果左儿子不为NULL,右儿子为NULL:
如果左儿子等于pre,那么自己出栈;
如果左儿子不等于pre,那么左儿子进栈;
如果左儿子为NULL,右儿子不为NULL:
如果右儿子等于pre,那么自己出栈;
如果右儿子不等于pre,那么右儿子进栈
如果左右儿子都不是NULL:
如果pre等于左儿子,那么右儿子进栈;
如果pre等于右儿子,那么自己出栈;
如果pre即不等于左儿子,也不等于右儿子,左儿子进栈。
标签:非递归 出栈 等于 中序遍历 中间 bsp 递归 左右 实现
原文地址:http://www.cnblogs.com/hustdc/p/7767883.html