首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

50分, 求用栈实现 的非递归版本的后序遍历解决方法

2012-06-11 
50分, 求用栈实现 的非递归版本的后序遍历问题1: 求通俗易懂的代码, 网上很多,但是大多没有注释问题2:大致

50分, 求用栈实现 的非递归版本的后序遍历

问题1: 求通俗易懂的代码, 网上很多,但是大多没有注释

问题2:

大致思路如下:

cur保存当前栈顶的指针,左子树进入栈后,遍历完毕,那么就退栈获取跟(即:把cur保存栈顶元素指针即可),

然后把cur指向其尤子书,把每次循环的时候,不分左,右,当做一个根处理(进栈) ,右子树遍历完毕,然后

退出栈顶,然后获取跟,获取后才visit.


好多人说,要设置个标志,

什么原因啊?


不设置会怎么样啊


问题3: 对于前序、 中序而言, 左子树一直往左走,停止后,则弹出栈,是可以检测的。或者说是可以得知左子树已经遍历完毕。

那么对于 后序的 右子树呢? 如何得知其遍历完毕。 判断依据是什么


本人很菜,诚心 求解这几个问题



[解决办法]
问题2你如何确定你的两棵子树都已经遍历完成了么??
看下我的博客:http://blog.csdn.net/w170532934/article/details/7089656
虽然是C++代码,但是不会太难的。里面有一个不需要设置标志的方法。
[解决办法]
这里有代码的,楼主可以参考一下的。。
http://blog.csdn.net/hackbuteer1/article/details/6583988

热点排行