二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法是采用队列
广度优先遍历
广度优先周游二叉树(层序遍历)是用队列来实现的,从二叉树的第一层(根结点)开始,自上至下逐层遍历;在同一层中,按照从左到右的顺序对结点逐一访问。
按照从根结点至叶结点、从左子树至右子树的次序访问二叉树的结点。算法:
1初始化一个队列,并把根结点入列;
2根节点入队
3循环直到队列空
3.1 q=队列头元素出队
3.2 访问q的数据域
3.3 若q有左孩子 左孩子入队
3.4 若q有右孩子 右孩子入队