剑指offer--面试题23

//该题原本想用递归实现,但却用循环实现了。。。
//关键用了个队列
#include <queue>

void Print(BinaryTreeNode* pRoot, std::queue<BinaryTreeNode*>& Qbt)
{
    if(pRoot != NULL)
    {
        cout<<pRoot->m_nValue;

        if(pRoot->pLeft)
            Qbt.push(pRoot->pLeft);
        if(pRoot->pRight)
            Qbt.push(pRoot->pRight);
    }
}


int main()
{
    std::queue<BinaryTreeNode*> Qbt;

    //省略了创建树的过程,假设其根节点为pRoot
    Qbt.push(pRoot);
    
    while(!Qbt.empty())
    {
        Print(Qbt.front());
        Qbt.pop();
    }

}

 

posted on 2013-08-21 12:10  -赶鸭子上架-  阅读(233)  评论(0编辑  收藏  举报