הדפסת עץ מעוצבת

public static <T> void printTreeLevelOrder(BinNode<T> t) {

       if (t == null) return;

       BinNode<T> tmp;

       int height = getHeight(t);

       Queue<BinNode<T>> q = new Queue<BinNode<T>>();

       q.insert(t);

       int level = 0;

       while (level < height) {

              int nodesInLevel = (int) Math.pow(2, level);

              int firstSpace = (int) Math.pow(2,heightlevel) -1;

              int betweenSpace = (int) Math.pow(2, heightlevel + 1)-1 ;

              printSpaces(firstSpace);

              for (int i=0;i<nodesInLevel;i++) {

                     tmp = q.remove();

                     if (tmp != null) {

                           System.out.print(tmp.getValue());

                           q.insert(tmp.getLeft());

                           q.insert(tmp.getRight());

                     }

                     else {

                           System.out.print("  ");

                           q.insert(null);

                           q.insert(null);

                     }

                     printSpaces(betweenSpace);

              }

              System.out.println(); // next level line

              level++;

       }

}