Przechodzenie drzewa

Z Wikipedii, wolnej encyklopedii.

Skocz do: navigation, szukaj

Przechodzenie drzewa (przechodzenie po drzewie) to w informatyce proces odwiedzania wszystkich węzłów drzewa.

Sposoby przechodzenia drzewa binarnego

Podane algorytmy rekurencyjne działają na drzewie binarnym:

  • Pre-order
PRE-ORDER(wierzchołek_v)
 {
    wypisz wierzchołek_v.wartość
    jeżeli wierzchołek_v.lewy_syn != null to PRE-ORDER(wierzchołek_v.lewy_syn)
    jeżeli wierzchołek_v.prawy_syn != null to PRE-ORDER(wierzchołek_v.prawy_syn)
 }

Działanie jest wykonywane najpierw na rodzicu, następnie na synach.

  • Post-order
POST-ORDER(wierzchołek_v)
 {
    jeżeli wierzchołek_v.lewy_syn != null to POST-ORDER(wierzchołek_v.lewy_syn)
    jeżeli wierzchołek_v.prawy_syn != null to POST-ORDER(wierzchołek_v.prawy_syn)
    wypisz wierzchołek_v.wartość
 }

Działanie jest wykonywane najpierw na wszystkich synach, na końcu na rodzicu.

  • In-order
IN-ORDER(wierzchołek_v)
 {
    jeżeli wierzchołek_v.lewy_syn != null to IN-ORDER(wierzchołek_v.lewy_syn)
    wypisz wierzchołek_v.wartość
    jeżeli wierzchołek_v.prawy_syn != null to IN-ORDER(wierzchołek_v.prawy_syn)
 }

Najpierw wykonywane jest działanie na jednym z synów, następnie na rodzicu i na końcu na drugim synu. Przechodząc w ten sposób drzewo poszukiwań binarnych, otrzymuje się posortowane wartości wszystkich węzłów. Dzieje się tak dlatego, że w drzewie poszukiwań binarnych wartość lewego syna n jest zawsze mniejsza od wartości n, a prawego syna zawsze większa od wartości n.

Sposoby przechodzenia drzewa o wielu dzieciach

Następujące algorytmy działają na ogólnym drzewie, którego każdy wierzchołek może miec dowolnie wiele dzieci

  • Pre-order
PRE-ORDER(wierzchołek_v)
 {
    wypisz wierzchołek_v.wartość
    dla każdego wierzchołka w będącego dzieckiem wierzchołka_v:
        PRE-ORDER(w)
 }
  • Post-order
POST-ORDER(wierzchołek_v)
 {    
    dla każdego wierzchołka w będącego dzieckiem wierzchołka_v:
        POST-ORDER(w)
    wypisz wierzchołek_v.wartość
 }
  • Nie istnieje algorytm In-order dla drzewa nie będącego drzewem binarnym.

Przykład

Przykładowe drzewo binarne

W tym drzewie binarnym

  • przechodzenie pre-order daje: 2, 7, 2, 6, 5, 11, 5, 9, 4
  • przechodzenie post-order daje: 2, 5, 11, 6, 7, 4, 9, 5, 2
  • przechodzenie in-order daje: 2, 7, 5, 6, 11, 2, 5, 4, 9

Uwaga: W tym drzewie występują różne dwie liczby 5 i dwie liczby 2.


Informatyka To jest tylko zalążek artykułu z dziedziny informatyki. Jeśli możesz, rozbuduj go.
W innych językach