码迷,mamicode.com
首页 > 其他好文 > 详细

好久没更新了,哪里不对!更新二叉树的非递归遍历

时间:2014-07-19 19:26:40      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:blog   os   io   re   c   div   

#include <iostream>
#include <stack>
using namespace std;

typedef struct Node
{
    Node* lchild;
    Node* rchild;
    int data;
}BNode,BTree;

void visit(Node*);

void inorder(BTree *root)
{
    BNode * p = root;
    stack<Node*> s;
    if(p||!s.empty())
    {
        s.push(p);
        p = p->lchild;
    }
    else
    {
        p = s.top();
        visit(p);
        s.pop();
        p = p ->rchild;
    }
}

void postorder(BTree *root)
{
    BNode* p = root;
    BNode* flag = NULL;
    stack<Node*>s;
    if(root||!s.empty())
    {
        s.push(root);
        p = p ->lchild;
    }
    else
    {
        p = s.top();
        if(p->rchild&&p->rchild != flag)
        {
            p = p->rchild;
            s.push(p);
            p = p->lchild;
        }
        else
        {
            visit(p);
            s.pop();
            flag = p;
            p = p->lchild;
        }
    }
}

好久没更新了,哪里不对!更新二叉树的非递归遍历,布布扣,bubuko.com

好久没更新了,哪里不对!更新二叉树的非递归遍历

标签:blog   os   io   re   c   div   

原文地址:http://www.cnblogs.com/cliviazhou/p/3849902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!