您的位置首页百科问答

二叉树非递归遍历算法c语言父突沿又算

二叉树非递归遍历算法c语言父突沿又算

的有关信息介绍如下:

问题补充说明:看了好几遍网上的没看懂,书上也没看懂,光知道用栈,但不知道到底咋用啊?高手说一下思想,再给个算法看看!一头雾水...... 是不是一定要先用递归生成二叉树啊?才可以模拟出栈,从而实现非递归的方法!

二叉树非递归遍历算法c语言父突沿又算

给你个离散数学中的算法:

先序:

1.将根节点放入栈中

2.while栈不空

do

3.从栈中取出一个节点,并visit

4.将这个节点右孩子,左孩子(如果存在)分别放入栈中

endwhile

中序:

1待天言.将根节点放入栈中

2.while栈不空

do

3.从田略栈中取出一个节点

4.if节点被标记

5.thenvisit该节点并将右孩子放入栈(如果存在)

else

6.将该节点标记并入栈

7.将该节点的左孩子入栈(如果存在)

endif

endwhil来自e

后序:

1.将根节点放入栈中

2.while栈不空

do

3.从栈顶取一节点

4.if节点被标记

5.thenvisit该节点

else

6.将该节点标记并入栈

7.将该节点的右孩略前族子,左孩子分别入栈(如果存在)

endif

endwhile