您的位置:首页 > 其它

二叉树的中序遍历的非递归算法

2012-12-26 14:17 232 查看
先回顾二叉树的中序遍历的递归算法:

先遍历左子树

然后遍历根结点

最后遍历右子树

对于左子树和右子树使用同样的思想

二叉树的中序遍历的非递归算法的思想:

中序遍历最先输出的结点是根结点的左子树中的左子树。。。(即最底层的左子树,即叶子结点的左子树),这可以通过反复执行p=p->left实现。同时要保证能回到左子树的根结点,这就需要用栈来存储在查找叶子左子树时经过的结点。这样在访问左子树后,就可以通过出栈得到此结点的根结点。

因为是中序遍历,在访问根结点后,再访问右结点,即p=p->right,原来同上左子树,知道p为空且堆栈为空

二叉树的中序遍历的非递归算法的实现:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: