Przechodzenie drzewa - Google

Przechodzenie drzewa

Z Wikipedii

Skocz do: nawigacji, szukaj

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

[edytuj] Sposoby przechodzenia drzewa binarnego

Istnieje 6 sposobów przejścia drzewa binarnego: VLR, LVR, LRV, VRL, RVL, RLV, gdzie: Visit - "odwiedź" węzeł, Left - idź w lewo, Right - idź w prawo. Wyróżnia się 3 pierwsze:

  • VLR - pre-order, przejście wzdłużne
  • LVR - in-order, przejście poprzeczne
  • LRV - post-order, przejście wsteczne

W przypadku gdy dane drzewo jest binarnym drzewem AST przejścia określa się również:

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.

  • 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, inaczej: key(wierzchołek.lewy_syn) < key(wierzchołek) < key(wierzchołek.prawy_syn).

  • 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.

[edytuj] Sposoby przechodzenia drzewa o wielu dzieciach

Następujące algorytmy działają na ogólnym drzewie, którego każdy wierzchołek może mieć 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.

[edytuj] Przykład

Przykładowe drzewo binarne

W tym drzewie binarnym

  • przechodzenie pre-order daje: F, B, A, D, C, E, G, I, H
  • przechodzenie post-order daje: A, C, E, D, B, H, I, G, F
  • przechodzenie in-order daje: A, B, C, D, E, F, G, H, I

Dlaczego warto uczyć kosmologii
Kosmologia to młoda nauka fizyczna, której najgwałtowniejszy rozwój miał miejsce w XX wieku. Teraz w dobie wspaniałego rozwoju technik obserwacyjnych, ta nauka oferuje nam obraz pełnego piękna i tajemnic Wszechświata, w którym żyjemy.
Jedna trzecia Polaków ma nadwagę
Ponad połowa Polaków (51 proc.) może pochwalić się prawidłową wagą ciała; prawie jedna trzecia (32 proc.) ma nadwagę, a 14 proc. jest otyłych. 3 proc. to osoby z wagą poniżej wagi prawidłowej - wynika z sondażu TNS OBOP.
Nad Biebrzą odkryto gród sprzed 7 wieków
XIV-wieczny gród został odkryty przez suwalskich archeologów podczas prac na trasie budowy obwodnicy Sztabina (podlaskie). Archeolodzy znaleźli tam ok. 30 tys. zabytków. Odkryli przedmioty związane z życiem ludzi w grodzie, nazwanym - podobnie jak pobliska wieś - Horodnianka.
Mikroskopijna hodowla komórek
Mieszając wodną zawiesinę żywych komórek z odpowiednio modyfikowanym olejem fluorowęglowym można wytworzyć mikro kropelki, w których prowadzona jest długotrwała hodowla komórek. W ten sposób możliwe są bardzo zaawansowane badania biomedyczne, z wykorzystaniem różnych hodowli komórkowych, w jednym małym reaktorze hodowlanym, co znacznie obniża koszty badań, donosi "Lab on a Chip".
Co pierwsze: jajko czy kura? Oto odpowiedź!
Po raz kolejny okazało się, że bez pomocy Natury nowoczesna nauka nie ma szans. Używając białka z kurzego jajka jako matrycy, naukowcy zsyntetyzowali nieorganiczne, silnie magnetyczne nanorurki, donosi "Chemical Communications".
Linki: Strona gwna