二叉树非递归遍历

1、二叉树递归遍历很简单,以前序遍历为例说明:

1 void PrefixOrder(Node* node) 

2 {

3     if(node!=NULL)

4     {

5         cout<<root->value<<" ";

6         PrefixOrder(root->lchild);

7         PrefixOrder(root->rchild);

8     }

9 } 

  中序遍历和后序遍历类似。

2、考虑二叉树非递归遍历,思路:前序遍历特点,访问当前节点,然后访问左孩子,左孩子有孩子,继续访问左孩子的左孩子节点,直到没有左孩子,访问右孩子。因此。非递归遍历的思路就是,使用while,记录当前节点,往左一条路走到底,然后原路后退,访问右节点。

你可能感兴趣的:(二叉树)