首页 > 其他 > 详细

非递归遍历二叉树之前序遍历

时间:2014-09-05 14:10:51      阅读:231      评论:0      收藏:0      [点我收藏+]

前序遍历二叉树

int preorder_tree_walk(BinTreeNode * root){

    if(root == NULL){
        return -1;
    }
    stack<BinTreeNode *> s;
    BinTreeNode * p = root;
    while(!s.empty() || p != NULL)
    {
        while(p != NULL){

            cout << p->key<< endl;

            s.push(p);

            p = p->lchild;
        }

        p = s.top();
        s.pop();

        p = p->rchild;
    }

    return 0;
}

红色的部分表示访问元素的值,和中序遍历二叉树相比,他们的区别仅仅在于访问元素的位置不同

非递归遍历二叉树之前序遍历

原文:http://www.cnblogs.com/ruccsbingo/p/3957924.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!