目录
层序遍历
概念
层序遍历,其实就是从上到下,从左到右依次将每个数放入到队列中,然后按顺序依次打印就是想要的结果
实现
(应用队列)
1、首先将二叉树的根节点进队,判断队列不为空,就输出队头的元素
2、判断节点如果有孩子,就将孩子进队
3、遍历过的节点出队
4、循环2,3,直到q.empty()
void Floor(Node &Tree) //层序遍历
{
queue <Node> q;
if (Tree != NULL)
{
q.push(Tree); //根节点进队列
}
while (!q.empty()) //队列不为空判断
{
cout << q.front()->data ;
if (q.front()->left != NULL) //如果有左孩子,leftChild入队列
{
q.push(q.front()->left);
}
if (q.front()->right != NULL) //如果有右孩子,rightChild入队列
{
q.push(q.front()->right);
}
q.pop(); //已经遍历过的节点出队列
}
}