Objaśnienie 4 rodzajów drzew w strukturze danych: właściwości i zastosowania
Opublikowany: 2021-06-18Spis treści
Co to jest drzewo w strukturze danych?
Drzewo to rodzaj struktury danych reprezentującej dane hierarchiczne. Ma nieliniową strukturę składającą się z węzłów połączonych krawędziami. Wśród innych typów struktur danych, które wykonują operacje na liniowej strukturze danych, złożoność wzrasta wraz ze wzrostem rozmiaru danych. Jednak struktura danych w postaci drzewa zapewnia szybszy dostęp do danych, co jest nieliniowe. Dzięki dostępności różnego rodzaju struktur danych i algorytmów z nimi związanych, wykonywanie zadań stało się łatwym i efektywnym sposobem.
Kilka terminów związanych z drzewami w strukturze danych to:
- Węzeł : węzeł jest jednostką w strukturze danych drzewa, która zawiera klucz lub wartość oraz wskaźniki do jego węzłów podrzędnych.
- Węzeł potomny : węzeł potomny jest potomkiem dowolnego węzła.
- Węzły liścia: węzły, które nie mają żadnych węzłów podrzędnych i są najniższym węzłem w drzewie. Nazywa się je również węzłami zewnętrznymi.
- Korzeń : to najwyższy punkt drzewa.
- Węzeł wewnętrzny : węzeł mający co najmniej jeden węzeł podrzędny.
- Krawędź: Krawędź odnosi się do połączenia między dowolnymi dwoma węzłami w drzewie.
- Wysokość węzła: Liczba krawędzi od węzła do najgłębszego liścia.
- Głębokość węzła : liczba krawędzi od nasady do węzła.
- Wysokość drzewa : Wysokość węzła głównego.
- Stopień węzła : Całkowita liczba gałęzi do tego węzła.
- Las: zbiór rozłącznych drzew.
Rodzaje drzew
1. Drzewo binarne
Drzewo binarne to rodzaj struktury danych drzewa, w którym każdy węzeł nadrzędny ma maksymalnie dwa węzły podrzędne. Jak sama nazwa wskazuje, binarny oznacza dwa, dlatego każdy węzeł może mieć 0, 1 lub 2 węzły. Strukturę danych w postaci drzewa binarnego pokazano na rysunku 1. Węzeł 1 w drzewie zawiera dwa wskaźniki, po jednym dla każdego węzła podrzędnego. Węzeł 2 ponownie ma po dwa wskaźniki dla dwóch węzłów podrzędnych. Podczas gdy węzły 3, 5 i 6 są węzłami typu liść i dlatego mają puste wskaźniki zarówno na lewej, jak i prawej części.
Rysunek 1: Reprezentacja drzewa binarnego ( https://www.javatpoint.com/binary-tree ).
Właściwości drzewa binarnego
- Maksymalna liczba węzłów na każdym poziomie I wynosi 2 i .
- Wysokość drzewa na rysunku 1 wynosi 3, co oznacza, że maksymalna liczba węzłów będzie (1+2+4+8) =15.
- Na wysokości h maksymalna możliwa liczba węzłów to (20 + 21 + 22+….2h) = 2h+1 -1.
- Na wysokości h minimalna możliwa liczba węzłów jest równa h+1.
- Minimalna liczba węzłów będzie reprezentować drzewo o maksymalnej wysokości i na odwrót.
Nawet drzewa binarne można podzielić na następujące typy drzew:
- Pełne drzewo binarne: Jest to specjalny rodzaj drzewa binarnego. W tej drzewiastej strukturze danych każdy węzeł nadrzędny lub węzeł wewnętrzny ma albo dwoje podrzędnych, albo nie ma węzłów podrzędnych.
- Idealne drzewo binarne: w tego typu drzewiastej strukturze danych każdy węzeł wewnętrzny ma dokładnie dwa węzły podrzędne, a wszystkie węzły liści są na tym samym poziomie.
- Kompletne drzewo binarne: przypomina pełne drzewo binarne z kilkoma różnicami.
- Każdy poziom jest całkowicie wypełniony.
- Węzły liści pochylają się w lewo od drzewa.
- Ostatni węzeł-liść nie musi mieć odpowiedniego rodzeństwa, tzn. kompletne drzewo binarne nie musi być pełnym drzewem binarnym.
- Drzewo zdegenerowane lub patologiczne: te drzewa mają jedno dziecko po lewej lub prawej stronie węzła rodzica.
- Skośne drzewo binarne: Jest to drzewo patologiczne lub zdegenerowane, w którym dominują lewe lub prawe węzły. W związku z tym istnieją dwa rodzaje skośnych drzew binarnych, tj. drzewo binarne skośne lewostronnie lub drzewo binarne skośne prawostronnie.
- Zrównoważone drzewo binarne: różnica między wysokością lewego i prawego poddrzewa dla każdego węzła wynosi 0 lub 1.
2. Binarne drzewo wyszukiwania
Te struktury drzewiaste są nieliniowe, a jeden węzeł jest połączony z wieloma węzłami. Węzeł może być połączony z maksymalnie dwoma węzłami podrzędnymi. Nazywa się to drzewem wyszukiwania binarnego, ponieważ:
- Każdy węzeł ma maksymalnie dwa węzły podrzędne.
- Może być używany do wyszukiwania elementu w czasie 0(log(n)) i stąd znany jako drzewo wyszukiwania.
Rysunek: Przykład drzewa wyszukiwania binarnego ( https://www.tutorialspoint.com/data_structures_algorithms/binary_search_tree.htm )
Właściwości drzewa wyszukiwania binarnego to:
- Wartość we wszystkich węzłach lewego poddrzewa powinna być mniejsza niż wartość w węźle głównym.
- Wartość we wszystkich węzłach prawego poddrzewa powinna być większa niż wartość w węźle głównym.
3. Drzewo AVL
Drzewa AVL to typy lub warianty drzewa binarnego. Składa się z właściwości zarówno z binarnego, jak i binarnego drzewa wyszukiwania. Wynalezione przez Adelsona Velsky'ego Lindasa drzewa te są samobalansujące, co oznacza, że wysokość lewego i prawego poddrzewa jest zrównoważona. Bilans ten jest mierzony za pomocą współczynnika równoważącego.

Współczynnik równoważenia:
- Jest to różnica między lewym poddrzewem a prawym poddrzewem.
- Wartość współczynnika równoważącego musi wynosić 0, -1 lub 1. Dlatego każdy węzeł drzewa AVL powinien składać się z wartości współczynnika równoważącego, tj. 0, -1 lub 1.
- Współczynnik równowagi = (wysokość lewego poddrzewa – wysokość prawego poddrzewa)
- O drzewie AVL mówi się, że jest drzewem zrównoważonym, jeśli współczynnik równowagi każdego węzła wynosi od -1 do 1.
Wartości węzłów inne niż -1 do 1 w drzewie AVL będą reprezentować niezrównoważone drzewo, które musi być zrównoważone.
- Jeśli węzeł ma współczynnik równowagi równy 1, oznacza to, że lewe poddrzewo jest o jeden poziom wyżej niż prawe poddrzewo.
- Jeśli węzeł ma współczynnik równowagi równy 0, oznacza to, że wysokość lewego poddrzewa i prawego poddrzewa jest równa.
- Jeśli węzeł ma współczynnik równowagi równy -1, oznacza to, że prawe poddrzewo jest o jeden poziom wyżej niż lewe poddrzewo lub lewe poddrzewo jest o jeden poziom niższe niż prawe poddrzewo.
4. B-drzewo
Drzewo B jest bardziej uogólnioną formą binarnego drzewa wyszukiwania. Jest również znane jako drzewo o zrównoważonej wysokości, gdzie m to rząd drzewa. Każdy węzeł drzewa może mieć więcej niż jeden klucz i więcej niż dwa węzły podrzędne. W przypadku drzewa binarnego węzły liści mogą nie znajdować się na tym samym poziomie. Jednak w przypadku drzewa B wszystkie węzły liści powinny znajdować się na tym samym poziomie.
Właściwości drzewa B:
- Klucze są przechowywane w porządku rosnącym dla każdego węzła x.
- W każdym węźle istnieje wartość logiczna „x.leaf”, co jest prawdą, jeśli x jest liściem.
- Węzły wewnętrzne powinny mieć co najwyżej „n-1” kluczy, gdzie n jest porządkiem drzewa. Powinien też mieć wskazówkę dla każdego dziecka.
- Wszystkie węzły będą miały co najwyżej n dzieci i co najmniej n/2 dzieci, z wyjątkiem węzła głównego.
- Węzły liściowe drzewa mają tę samą głębokość.
- Węzeł główny będzie miał co najmniej 1 klucz i co najmniej dwoje dzieci.
- Jeśli n ≥ 1, to dla dowolnego n-kluczowego drzewa B o wysokości h i minimalnym stopniu t ≥ 2, h ≥ logt (n+1)/2.
Aplikacje
- Drzewo wyszukiwania binarnego można zastosować do wyszukiwania elementu w zestawie elementów.
- Drzewa sterty są używane do sortowania sterty.
- Nowoczesne routery używają do przechowywania informacji o routingu rodzaju drzewa o nazwie Próby.
- B-Trees i T-Trees są najczęściej używane przez popularne bazy danych do przechowywania swoich danych.
- Drzewo składni jest używane przez kompilatory do sprawdzania składni każdego napisanego programu.
Wniosek
Struktury danych zapewniają zorganizowany sposób przechowywania danych w celu łatwego zarządzania i efektywnej obsługi. Dla różnych typów danych istnieją różne typy struktur danych. Na podstawie rodzaju danych, które muszą być przechowywane, wybiera je użytkownik.
Drzewa to rodzaje takich struktur danych, w których można przechowywać hierarchiczny typ danych. Dane są przechowywane w węzłach, które czasami przechowują odniesienie do innych węzłów, zwanych węzłami potomnymi.
Na podstawie liczby węzłów podrzędnych drzewa można podzielić na różne typy, jak wspomniano w artykule. Na podstawie rozmieszczenia węzłów w typach drzewa, każda struktura drzewa ma skojarzone właściwości. Dzięki różnym typom operacji, które mogą być wykonywane przez różne klasy drzew, ten typ struktury danych znalazł zastosowanie w algorytmach sortowania i przechowywaniu danych.
Program Executive PG w rozwoju oprogramowania – specjalizacja w rozwoju pełnego stosu, kuratorowany przez upGrad i IIIT-Bangalore, może pomóc w poprawie twojego profilu i zapewnieniu lepszych możliwości zatrudnienia jako programista.
Chociaż na pierwszy rzut oka zarówno drzewo binarne, jak i drzewo wyszukiwania binarnego wydają się podobne, jednak w dużej mierze różnią się od siebie pod wieloma względami: Drzewa samobilansujące się są binarnymi drzewami wyszukiwania, które są skonstruowane w taki sposób, że po wstawieniu nowego węzła, drzewa te równoważą się same.Określić różnicę między drzewem binarnym a drzewem wyszukiwania binarnego?
Drzewo binarne -
1. Drzewo binarne może mieć maksymalnie 2 węzły i nie ma określonej kolejności węzłów.
2. Operacje takie jak wstawianie, usuwanie i wyszukiwanie są stosunkowo wolniejsze, ponieważ nie są uporządkowane.
3. Pełne drzewo binarne, rozszerzone drzewo binarne i kompletne drzewo binarne to przykłady drzew binarnych.
Drzewo wyszukiwania binarnego —
1. Drzewo wyszukiwania binarnego to specjalny rodzaj drzewa binarnego, w którym każdy węzeł ma prawe i lewe poddrzewo, które same są drzewami wyszukiwania binarnego.
2. Wszystkie te operacje są szybsze, ponieważ elementy są uporządkowane.
3. Drzewo AVL, drzewo tanga i drzewo splay to przykłady binarnych drzew wyszukiwania. Czym są samobalansujące się drzewa i gdzie są używane?
Oto kilka przykładów samobalansujących drzew:
drzewo AVL
Rozwiń drzewo
Czerwono-Czarne Drzewo
Drzewa samobalansujące są używane do implementacji kilku rzeczywistych aplikacji, takich jak transakcje bazodanowe, systemy plików, zarządzanie pamięcią podręczną, algorytmy napisane do garbage collection, implementacja multiset.