Wprowadzenie do drzew
Treeto dyskretna struktura reprezentująca hierarchiczne relacje między poszczególnymi elementami lub węzłami. Drzewo, w którym rodzic ma nie więcej niż dwoje dzieci, nazywane jest drzewem binarnym.
Drzewo i jego właściwości
Definition- Drzewo jest połączonym, acyklicznym, niekierowanym grafem. Między każdą parą wierzchołków w $ G $ istnieje unikalna ścieżka. Drzewo z liczbą N wierzchołków zawiera $ (N-1) $ liczbę krawędzi. Wierzchołek, który ma 0 stopni, nazywany jest korzeniem drzewa. Wierzchołek, który ma 1 stopień, nazywany jest węzłem liścia drzewa, a stopień węzła wewnętrznego wynosi co najmniej 2.
Example - Poniżej przedstawiono przykład drzewa -
Centra i Bi-Centra drzewa
Środek drzewa to wierzchołek o minimalnej ekscentryczności. Mimośrodowość wierzchołka $ X $ w drzewie $ G $ to maksymalna odległość między wierzchołkiem $ X $ a jakimkolwiek innym wierzchołkiem drzewa. Maksymalna mimośrodowość to średnica drzewa. Jeśli drzewo ma tylko jedno centrum, nazywa się je drzewem centralnym, a jeśli drzewo ma tylko więcej niż jeden środek, nazywa się je drzewem dwu-centralnym. Każde drzewo jest centralne lub dwu-centralne.
Algorytm znajdowania środków i dwucentrów drzewa
Step 1 - Usuń wszystkie wierzchołki stopnia 1 z danego drzewa, a także usuń ich krawędzie.
Step 2- Powtarzaj krok 1, aż zostanie pojedynczy wierzchołek lub dwa wierzchołki połączone krawędzią. Jeśli pozostawiony zostanie pojedynczy wierzchołek, jest to środek drzewa, a jeśli dwa wierzchołki połączone krawędzią zostaną pozostawione, to jest to środek drzewa.
Problem 1
Znajdź środek / dwuśrodek następującego drzewa -
Solution
Najpierw usuniemy wszystkie wierzchołki stopnia 1, a także usuniemy ich krawędzie padające i otrzymamy następujące drzewo -
Ponownie usuniemy wszystkie wierzchołki stopnia 1, a także usuniemy ich krawędzie padające i otrzymamy następujące drzewo -
W końcu mamy pojedynczy wierzchołek „c” i zatrzymujemy algorytm. Ponieważ istnieje pojedynczy wierzchołek, drzewo to ma jeden środek „c”, a drzewo jest drzewem centralnym.
Problem 2
Znajdź środek / dwuśrodek następującego drzewa -
Solution
Najpierw usuniemy wszystkie wierzchołki stopnia 1, a także usuniemy ich krawędzie padające i otrzymamy następujące drzewo -
Ponownie usuniemy wszystkie wierzchołki stopnia 1, a także usuniemy ich krawędzie padające i otrzymamy następujące drzewo -
Ostatecznie mamy dwa wierzchołki „c” i „d” w lewo, dlatego zatrzymujemy algorytm. Ponieważ lewe są dwa wierzchołki połączone krawędzią, drzewo to ma dwuśrodkowe „cd”, a drzewo jest dwuśrodkowe.
Oznaczone drzewa
Definition- Drzewo etykietowane to drzewo, którego wierzchołki mają przypisane unikalne liczby od 1 do n. Możemy ręcznie policzyć takie drzewa dla małych wartości n, aby przypuszczać ogólny wzór. Liczba oznaczonych drzew o n liczbie wierzchołków wynosi $ n ^ {n-2} $. Dwa oznakowane drzewa są izomorficzne, jeśli ich wykresy są izomorficzne, a odpowiadające im punkty obu drzew mają takie same etykiety.
Przykład
Drzewa bez etykiety
Definition- Drzewo bez etykiety to drzewo, którego wierzchołkom nie przypisano żadnych liczb. Liczba oznaczonych drzew z n liczby wierzchołków wynosi $ \ frac {(2n)!} {(N + 1)! N! } $ (n- ty numer kataloński)
Przykład
Ukorzenione drzewo
Drzewo z korzeniami $ G $ jest połączonym grafem acyklicznym ze specjalnym węzłem nazywanym korzeniem drzewa, a każda krawędź bezpośrednio lub pośrednio pochodzi z korzenia. Uporządkowane drzewo ukorzenione to drzewo zakorzenione, w którym uporządkowane są dzieci każdego wewnętrznego wierzchołka. Jeśli każdy wewnętrzny wierzchołek zakorzenionego drzewa ma nie więcej niż m dzieci, nazywa się je drzewem m-arnym. Jeśli każdy wewnętrzny wierzchołek zakorzenionego drzewa ma dokładnie m dzieci, nazywane jest pełnym drzewem m-arnym. Jeśli $ m = 2 $, zakorzenione drzewo nazywane jest drzewem binarnym.
Drzewo wyszukiwania binarnego
Drzewo wyszukiwania binarnego jest drzewem binarnym, które spełnia następującą właściwość -
- $ X $ w lewym poddrzewie wierzchołka $ V, Wartość (X) \ le Wartość (V) $
- $ Y $ w prawym poddrzewie wierzchołka $ V, Wartość (Y) \ ge Wartość (V) $
Zatem wartość wszystkich wierzchołków lewego poddrzewa wewnętrznego węzła $ V $ jest mniejsza lub równa $ V $, a wartość wszystkich wierzchołków prawego poddrzewa wewnętrznego węzła $ V $ są większe lub równe $ V $. Liczba łączy od węzła głównego do najgłębszego to wysokość drzewa wyszukiwania binarnego.
Przykład
Algorytm wyszukiwania klucza w BST
BST_Search(x, k)
if ( x = NIL or k = Value[x] )
return x;
if ( k < Value[x])
return BST_Search (left[x], k);
else
return BST_Search (right[x], k)
Złożoność drzewa wyszukiwania binarnego
Średnia wielkość | Najgorszy przypadek | |
---|---|---|
Złożoność przestrzeni | Na) | Na) |
Wyszukaj złożoność | O (log n) | Na) |
Złożoność wstawiania | O (log n) | Na) |
Złożoność usuwania | O (log n) | Na) |