二叉树非递归遍历

淺唱寂寞╮ 提交于 2019-11-27 01:23:05

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,记录当前节点,往左一条路走到底,然后原路后退,访问右节点。

转载于:https://www.cnblogs.com/nzbbody/p/3450144.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!