Wypisanie listy wierzchołków

0

Witam mam za zadanie napisanie programu który dla danych dwóch list wierzchołków drzewa
binarnego, będących opisami przeglądów drzewa w porządkach PREORDER i INORDER
lub POSTORDER i INORDER wypisze listę wierzchołków, opisującą przegląd drzewa w
brakującym porządku.

Prosił bym o pomoc w zrozumieniu dlaczego dla takich danych wejściowych:

PREORDER
1 2 4 8 5 9 3 6 7 10 11
INORDER
8 4 2 5 9 1 6 3 10 7 11

wynik jest równy :
8 4 9 5 2 6 10 11 7 3 1

0
  • pierwsza linia zawiera dokładnie jedno ze słów PREORDER lub POSTORDER.
    *w kolejnej linii znajduje się n różnych kluczy (typu int) wypisanych w
    wyżej wymienionym porządku.
  • czwarta i piąta linia zawierają analogicznie sformatowany opis przejścia
    przez drzewo w porządku INORDER.
0

Z tego co wiem to zadanie jest napisane poprawnie .

1

Prosił bym o pomoc w zrozumieniu dlaczego dla takich danych wejściowych:

PREORDER
1 2 4 8 5 9 3 6 7 10 11
INORDER
8 4 2 5 9 1 6 3 10 7 11

wynik jest równy :
8 4 9 5 2 6 10 11 7 3 1

Drzewo wygląda tak:

         1
    2         3
 4    5     6    7
8      9       10 11

Sprawdziłem i prawdopodobnie się nie pomyliłem, ale nigdy nie wiadomo, więc zweryfikuj samodzielnie.

Robiłem ręcznie, jak do tego napisać algorytm

  • bierzesz pierwszą wartość z preorder i szukasz jej w inorder.
  • elementy przed tą wartością w inorder to lewe poddrzewo
  • ten element to korzeń
  • elementy za tą wartością to prawe poddrzewo
  • powtarzać rekurencyjnie.

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