סריקה לרוחב עם רמה


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();

}

}