wypisywanie w konkretnym miejscu w konsoli

0

Chcę w konkretnym porządku (inorder, postorder, preorder) "wypisać" drzewo binarne oraz w tym również porządku głębokość każdego liścia. Chcę jednak, żeby na wejściu najpierw pojawiło się "wypisane" drzewo, a następnie głębokości liści. W jaki sposób mam to zrealizować bez trzymania tych głębokości w dodatkowej pamięci? Trzeba wypisać to "w locie", również bez drugiego przechodzenia drzewa.

void preorder (drzewo, wierzcholek) {
	wypisz wierzcholek;
       
	if (wierzcholek ma lewego syna)
		preorder (drzewo, lewy syn wierzcholka);

	if (wierzcholek ma prawego syna)
		preorder (drzewo, prawy syn wierzcholka);

	if (wierzcholek nie ma synow <=> wierzcholek jest lisciem) {
               przejdz do nastepnej linijki;
               wypisz glebokosc wierzcholka;
               wroc do linijki wyzej;
        }
}
1

Niech preorder() ma trzeci parametr glebokosc, który wypisujesz gdy dojdziesz do liścia. Wywołanie rekurencyjne dla syna musi oczywiście to zwiększać

preorder (drzewo, lewy syn wierzcholka, glebokosc+1);
0

To wiem, nie w tym jednak leży problem. Chcę wypisać w pierwszej linijce drzewo, w drugiej w odpowiedniej kolejnosci glebokosci lisci. Zatem podczas wypisywania drzewa, kiedy dojde do liscia, to chce przeskoczyc linijke nizej i wypisac glebokosc, po czym wrocic do linijki wyżej i wypisywać dalej drzewo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1