二叉樹的層次遍歷是通過一個隊列來實現,先讓根節點入隊列,然後出隊列,將出隊列的值打印出來,並將這個值得左右子節點入隊列,開始的時候只要有出隊列就有兩個子節點入隊列,最後的時候到了葉子節點,就全是出隊列了;
代碼比較簡單,如下:
void travBiTree3(Node *head)//層次遍歷
{
if (head==NULL)
{
return;
}
queue q;
Node *temp=NULL;
q.push(head);
while(!q.empty())
{
q.pop(temp);
cout<<temp->val<<"\t";
if (temp->left)
{
q.push(temp->left);
}
if (temp->right)
{
q.push(temp->right);
}
}
}