public static void HorizentalScanWithLevel(BinNode<Integer> t) {
Queue<BinNode<Integer>> q = new Queue<BinNode<Integer>>();
BinNode<Integer> tmp;
q.insert(t);
int level = 0;
while (!q.isEmpty())
{
int numOfNodesInLevel = q.size();
for (int i=0;i<numOfNodesInLevel;i++) {
tmp = q.remove();
System.out.println("("+tmp.getValue()+" in level "+level+"),");
if (tmp.hasLeft())
q.insert(tmp.getLeft());
if (tmp.hasRight())
q.insert(tmp.getRight());
}
level++;
}
System.out.println();
}
}
