Co to jest drzewo binarne?
Drzewo binarne to rodzaj struktury danych wykorzystywanej w programowaniu komputerowym do przechowywania, sortowania i uzyskiwania dostępu do informacji. Drzewa binarne to najprostsza odmiana drzewa, ale są bardzo przydatne i łatwe do wdrożenia. Typowa implementacja drzewa binarnego opiera się na węźle głównym połączonym z serią węzłów, które tworzą samo drzewo za pomocą zmiennych wskaźnikowych. Ten typ drzewa wywodzi swoją nazwę od faktu, że żaden węzeł w drzewie nie może mieć więcej niż dwoje dzieci.
Struktury danych drzewa występują w wielu odmianach. Składają się z różnych węzłów, które są zorganizowane według hierarchicznego wzorca. Pojedynczy węzeł, root, jest punktem dostępu, przez który można przeszukiwać całe drzewo danych lub w inny sposób nim manipulować. Ten węzeł główny wskazuje na górny węzeł w samym drzewie.
Każdy węzeł w drzewie, z wyjątkiem najwyższego węzła, będzie miał węzeł nadrzędny, który znajduje się nad nim w hierarchii drzewa. Może mieć również węzły podrzędne, które znajdują się pod nim. Dostęp do danego węzła uzyskuje się poprzez te znajdujące się nad nim w drzewie i zapewnia dostęp do tych poniżej.
Struktury danych drzewa binarnego pozwalają każdemu węzłu mieć nie więcej niż dwoje dzieci. Dany węzeł może zatem mieć dołączone zero, jeden lub dwa węzły potomne. Zwykłe drzewa binarne pozwalają węzłom z dowolną liczbą dzieci w dowolnym punkcie drzewa. Nie nakładają również żadnych ograniczeń na sposób uporządkowania wartości przechowywanych w węzłach zawierających drzewo.
Struktury danych są najbardziej przydatne, gdy zwiększają szybkość, z jaką komputer może uzyskiwać dostęp do danych, a zmodyfikowane wersje drzew binarnych są wykorzystywane do poprawy ich wydajności. Drzewo wyszukiwania binarnego to takie, w którym wszystkie wartości danych znajdujące się w lewej gałęzi malejącej z danego węzła mają wartości równe lub mniejsze niż wartość przechowywana w tym węźle. Wartości po prawej stronie węzła w uporządkowanym drzewie binarnym muszą z kolei być większe niż wartość w węźle podstawowym. To uporządkowanie danych pozwala na zapisanie znacznie wydajniejszego algorytmu wyszukiwania.
Kształt drzewa binarnego jest również ważny przy określaniu wydajności algorytmu wyszukiwania. Najmniej wydajna odmiana drzewa binarnego to taka, w której każdy węzeł ma tylko jedno dziecko. Komputer może potrzebować zbadać każdy element danych w całym drzewie, aby zlokalizować pojedynczy element informacji w tej konfiguracji. Natomiast najbardziej wydajne drzewo binarne to takie, w którym każdy węzeł oprócz tych na dole drzewa ma dwoje potomków, a wszystkie węzły liścia, dolne węzły drzewa, znajdują się w tej samej odległości od korzenia.