Есть вот такой класс
public class PrintableTreeImpl implements PrintableTree {
    Integer vertex;
    PrintableTreeImpl left;
    PrintableTreeImpl right;
и в нем два метода такой
public void add(int i) {
        if (vertex == null) {
            vertex = i;
        } else if (i <= vertex) {
            if (left == null) {
                left = new PrintableTreeImpl();
            }
            left.add(i);
        } else  {
            if (right == null) {
                right = new PrintableTreeImpl();
            }
            right.add(i);
        }
    }
и второй,который печатает бинарное дерево,вся проблема с реализацией второго метода((
public String prettyPrint(){}
мне нужно сделать из такого дерева 302 946 638 376 604 610 45 547 76 347 694 495 51 130 159 вот такое ┌45┐ │ │ ┌51 │ └76┤ │ └130┐ │ └159 302┤ │ ┌347 │ ┌376┤ │ │ │ ┌495 │ │ │ ┌547┘ │ │ └604┤ │ │ └610 │ ┌638┤ │ │ └694 └946┘ у меня есть идеи что положить все символы в константы,затем пробовать вернуть каждую сторону дерева в строковом представлении,т.е.prettyPrint(vertex),prettyPrint(right),prettyPrint(left),потом пытаться сплитануть по \n и пробовать пилить от количества строк потом делать отступы по этим количествам строк,но я полностью запутался как мне это все сделать,подскажите кто сможет,буду очень признателен