[Java] wyświetlanie elementów

Witam,

Otóż mam taką metodę wyswietl() :

private Wezel korzen;

private void wyswietl(Wezel korzen, int LiczbaWciec) {

        if (korzen != null) {

            wyswietl(korzen.zwrocPrawy(), LiczbaWciec + 0);

            System.out.printf("%1$"+ LiczbaWciec+"d\n", korzen.zwrocWartosc());

            wyswietl(korzen.zwrocLewy(), LiczbaWciec + 0);

           }


    }


    public void wyswietl() {

        wyswietl(korzen, 1);

    }

Gdy ją wywołam w main dostaję drzewo b. postaci:

6

5

3 itp.

I teraz moje pytanie jest takie : jak zmodyfikować tą metodę aby wyświetlała coś takiego:

6 => 1

7 = > 3

Gdzie po lewej stronie mam drzewo b. a po prawej stronie kolejkę.

Mam klasy:

Wezel(zawiera zwrocWartosc(), zwrocPrawy() itp.) , Drzewo(wyswietl(), szukaj(), wstaw(), usun()), <- to dla drzewa b.

dla kolejki : Ogniwo(zawiera zwrocWartosc() itp.), Kolejka(dodajNaKoniec(), usunPierwszy(), odczytajPierwszy(), jestPusta()).

Niestety ja już nie wiem jak mam to ulepszyć aby wyświetlało w jednej linijce kolejke i drzewo.

Za wszelkie wskazowki bede wdzieczna :slight_smile:

Ale co ma zawierać ta twoja kolejka, bo to nijak ma się do balanced tree. Może najlepiej wklej treść zadania.

Właśnie co ma zawierać kolejka? Czy w kolejce chcesz przechowywać kolejne elementy pobrane z Twojego drzewa czy co? Polecam zastosowanie rekurencji dla drzew. Zastanawia mnie co robi “Liczba wciec + 0”. Tak na szybko, przechodzenie drzewa:

private String toString(Node t,int pos) {   

    String result="";

    String spaces=" ";

    if(t!=null) result=result+toString(t.right,pos+4)+spaces.substring(0,pos)+String.format("%s",t.value)+toString(t.left,pos+4);

    else result=result+String.format("%n");

    return result;

    }