Monday, October 22, 2012

print tree level by level



void LevelReverse(BSTreeNode *pRoot)
{
    if(NULL==pRoot)
        return;
    deque<BSTreeNode *> dataque;
    dataque.push_back(pRoot);
   
    while(deque.size())
    {
        BSTreeNode *node= dataque.front();
        dataque.pop_front();
        cout<<node->data<<" ";
       
        if(node->left)
            dataque.push_back(node->left);
        if(node->right)
            dataque.push_back(node->right);      
    }
}


void LevelReverselevel(BSTreeNode *pRoot)
{
    if(NULL==pRoot)
        return;
    deque<BSTreeNode *> dataque;
    dataque.push_back(pRoot);
    dataque.push_back(NULL);
   
    while(deque.size())
    {
        BSTreeNode *node= dataque.front();
        dataque.pop_front();
       
        if(node)
        {
            cout<<node->data<<" ";
            if(node->left)
                dataque.push_back(node->left);
            if(node->right)
                dataque.push_back(node->right);
        }
        else
        {
            dataque.push_back(NULL);
            cout<<endl;
        }    
             
    }
    cout<<endl;
}

No comments:

Post a Comment