层次遍历二叉树以及遍历第K层二叉树

来源:互联网 发布:神话特效软件 编辑:程序博客网 时间:2024/06/07 18:37

层次遍历的时候用到了,STL中的队列。

void LevelOrder(BtNode *ptr){    queue<BtNode*> que;    que.push(ptr);    while (!que.empty())    {        BtNode * temp = que.front();        if(temp->leftchild != NULL)            que.push(temp->leftchild);        if(temp->rightchild != NULL)            que.push(temp->rightchild);        que.pop();        printf("%c ", temp->data);    }}int Level_K_prin(BtNode *ptr,int k,int count_tt)  //count_tt代表从那一层开始,0或1{//  static int count_tt = 1;    if (count_tt == k)    {        printf("%c ", ptr->data);        return k;    }     if (ptr->leftchild != NULL)    {        //count_tt += 1;        Level_K_prin(ptr->leftchild, k,count_tt+1 );    }    if(ptr->rightchild != NULL)    {        //count_tt += 1;        Level_K_prin(ptr->rightchild, k,count_tt+1);    }}
原创粉丝点击