实际上也就是二叉树的层次遍历.
二叉树的遍历分为深度优先遍历(分别是: 先中后序遍历), 而广度优先遍历则是层次遍历.
一. 功能
从上往下, 一层一层的遍历每个结点.
二. 算法思想
首先将根指针(注意不是根节点)放进数组中, 输出它的内容, 然后将它的左孩子和右孩子放入数组中.
数组内部指针向后移动, 此时指向它的左孩子, 输出左孩子的内容, 并把左孩子的左孩子和右孩子放进数组中.
…
以此类推, 知道处理完数组中的最后一个元素.
三. 代码
1 | void LevelOrder(BiTree bt) |
从这里可以看出, 队列不一定要用链表实现, 甚至可以用数组实现一个假队列.