package sort;
import java.util.LinkedList;
import java.util.Queue;
public class Test32 {
public static Queue<BinayTreeNode> qu = new LinkedList<BinayTreeNode>();
public static void main(String[] args) {
int deepth = 3;
BinayTreeNode root = new BinayTreeNode(1, null, null);
makeTree(root, deepth);
leavel(root);
}
private static void leavel(BinayTreeNode root) {// 层次遍历需要借助队列完成
// 首先将根节点入栈,只要队列不为空则每次取队列头结点,输出此节点的值,将其左右子节点入队列
qu.add(root);
while (!qu.isEmpty()) {
BinayTreeNode temp = qu.poll();
System.out.print(temp.value + " ");
if (temp.left != null)
qu.add(temp.left);
if (temp.right != null)
qu.add(temp.right);
}
}
private static void makeTree(BinayTreeNode node, int deep) {
// TODO Auto-generated method stub
if (deep > 0) {
node.left = new BinayTreeNode(node.value * 2, null, null);
node.right = new BinayTreeNode(node.value * 2 + 1, null, null);
makeTree(node.left, deep - 1);
makeTree(node.right, deep - 1);
}
}
}