美文网首页
二叉树的后序遍历非递归

二叉树的后序遍历非递归

作者: 雨宝_f737 | 来源:发表于2019-03-12 11:22 被阅读0次

使用两个栈,遇到根节点放入s2中,压到最底下,后面弹出来就是最后访问的;

新来的结点放入s1,先放左后放右,先弹出右压进去,后左。

void BinaryTree::posOrderUnrecur(BinaryNode* head)

{

    stack<BinaryNode*> s1;

    stack<BinaryNode*> s2;

    s1.push(head);

    BinaryNode* tmp;

    while(!s1.empty())

    {

        tmp = s1.top();

        s1.pop();

        s2.push(tmp);

        if(tmp->left!=NULL)

        {

            s1.push(tmp->left);

        }

        if(tmp->right!=NULL)

        {

            s1.push(tmp->right);

        }

    }

    while(!s2.empty())

    {

        tmp = s2.top();

        s2.pop();

        cout<<tmp->value<<" ";

    }

    return;

}

相关文章

  • goLang 二叉树遍历(递归 非递归 前序遍历 中序遍历 后序

    goLang 二叉树遍历(递归 非递归 前序遍历 中序遍历 后序遍历 层序遍历) 前序遍历 中序遍历 后序遍历 代...

  • 二叉树遍历-JAVA实现

    基础二叉树 二叉树遍历分为前序、中序、后序递归和非递归遍历、还有层序遍历。 前序递归遍历算法:访问根结点-->递归...

  • 二叉树,非递归法

    递归法 二叉树的递归,有前序遍历、中序遍历、后序遍历,一般采用递归法,比较简单 非递归法 二叉树非递归法,采用栈来实现

  • 算法之二叉树

    二叉树之C++实现 创建二叉树 复制二叉树 先序遍历 递归实现 非递归实现 中序遍历 递归实现 非递归实现 后序遍...

  • LeetCode 二叉树的后序遍历

    给定一个二叉树,返回它的 后序 遍历。 非递归(迭代): 后序遍历递归定义:先左子树,后右子树,再根节点。 后序遍...

  • 左神算法笔记——Morris遍历

    基本问题——实现二叉树的前序、中序、后序遍历 (递归、非递归,mirros方法) 递归 递归方式下的前中后遍历 非...

  • 二叉树遍历

    先序遍历——[递归、非递归] 中序遍历——[递归、非递归] 后序遍历——[递归、非递归] 层次遍历——[递归、非递归]

  • 各种二叉树遍历

    C++实现,二叉树的递归、非递归版本的前序、中序、后序遍历。

  • 二叉树的操作

    /*主要内容:1、实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式*/ 实现二叉树的先序、中序、后序遍历...

  • 二叉树的遍历

    非递归前序遍历 非递归中序遍历 非递归后序遍历 层序遍历

网友评论

      本文标题:二叉树的后序遍历非递归

      本文链接:https://www.haomeiwen.com/subject/jcdgpqtx.html