Binarne drzewo w c
W C, Drzewo binarne jest instancją struktury danych drzewa z węzłem nadrzędnym, który może mieć maksymalną liczbę dwóch węzłów dziecięcych; 0, 1 lub 2 węzły potomstwa. Każdy węzeł w Drzewo binarne ma własną wartość i dwoje wskaźników dla swoich dzieci, jeden wskaźnik dla lewego dziecka, a drugi dla właściwego dziecka.
Deklaracja drzewa binarnego
A Drzewo binarne można zadeklarować w C za pomocą obiektu wywołanego struct który przedstawia jeden z węzłów na drzewie.
Node structPowyżej jest deklaracją jednego Drzewo binarne Nazwa węzła jako węzeł. Zawiera trzy wartości; jeden to zmienna przechowywania danych, a pozostałe dwa są wskaźnikami dziecka. (lewe i prawe dziecko węzła nadrzędnego).
Fakty z drzewa binarnego
Nawet w przypadku dużych zestawów danych, za pomocą Drzewo binarne sprawia, że wyszukiwanie jest łatwiejsze i szybsze. Liczba gałęzi drzew nie jest ograniczona. W przeciwieństwie do tablicy, jakiekolwiek drzewa można wykonać i zwiększać w zależności od tego, co jest wymagane.
Wdrożenie drzewa binarnego w C
Poniżej znajduje się przewodnik krok po kroku do wdrożenia Drzewo binarne w c.
Krok 1: Dokonaj drzewa wyszukiwania binarnego
Utwórz węzeł struktury, który ma trzy typy danych, takie jak dane, *left_child i *prawe_child, w którym dane mogą być typu liczb całkowitych, a zarówno *lewy_child, jak i *prawe_child mogą być deklarowane jako null lub nie.
węzeł structKrok 2: Utwórz nowe węzły w drzewie wyszukiwania binarnego
Utwórz nowy węzeł, tworząc funkcję, która akceptuje liczbę całkowitą jako argument i zapewnia wskaźnik do nowego węzła utworzonego z tą wartością. Użyj funkcji Malloc () w C do dynamicznej alokacji pamięci dla utworzonego węzła. Zainicjuj lewe i prawe dziecko do null i zwróć Nodename.
Node struct* Utwórz (dane danych)Krok 3: Wstaw prawe i lewe dziecko w binarnym drzewie
Utwórz funkcje Insert_Left i Insert_right, które zaakceptują dwa wejścia, które są wartością, którą należy włożyć, oraz wskaźnik do węzła, do którego będą podłączone oba dzieci. Wywołaj funkcję Utwórz, aby utworzyć nowy węzeł i przypisz zwrócony wskaźnik do lewego wskaźnika lewego dziecka lub prawego wskaźnika prawego dziecka rodzica głównego.
struct node* insert_left (node struct node* root, dane danych)Krok 4: Wyświetl węzły drzewa binarnego za pomocą metod przemieszczania
Możemy wyświetlać drzewa, używając trzech metod przemieszczania w C. Te metody przejścia to:
1: Przejazd w przedsprzedaży
W tej metodzie przejścia przejdziemy przez węzły w kierunku pary_node-> left_child-> right_child.
void przed_order (węzeł * root)2: Traversal po zamówieniu
W tej metodzie przejścia przejdziemy przez węzły w kierunku od left_child-> prawy_child-> marent_node->.
void display_post_order (węzeł * root)3: Traversal na zamówieniu
W tej metodzie przejścia przejdziemy przez węzły w kierunku left_node-> root_child-> prawy_child.
void display_in_order (węzeł * root)Krok 5: Wykonaj usunięcie w drzewie binarnym
Możemy usunąć utworzone Drzewo binarne Usuwając oba dzieci z funkcją węzła nadrzędnego w C w następujący sposób.
void delete_t (węzeł * root)C Program drzewa wyszukiwania binarnego
Poniżej znajduje się pełna implementacja drzewa wyszukiwania binarnego w programowaniu C:
#włączaćW powyższym kodzie najpierw deklarujemy węzeł za pomocą struct. Następnie zainicjujemy nowy węzeł jako „Node1”I podzielić na dynamicznie pamięć za pomocą Malloc () W C z danymi i dwoma wskaźnikami wpisuje dzieci przy użyciu zadeklarowanego węzła. Następnie wyświetlamy węzeł przez printf () funkcjonować i wywołać to w główny() funkcjonować. A później insertion_node () Funkcja jest tworzona, gdzie, jeśli dane węzła są null, to Node1 jest emerytowany, w przeciwnym razie dane są umieszczane w węzeł(rodzic) lewego i prawego dziecka. Program rozpoczyna wykonywanie z główny() Funkcja, która generuje węzeł za pomocą kilku przykładowych węzłów jako dzieci, a następnie wykorzystuje metody przejścia na zamówienie do wydrukowania zawartości węzła.
Wyjście
Wniosek
Drzewa są często stosowane do przechowywania danych w formie nieliniowej. Drzewa binarne to rodzaje drzew, w których każdy węzeł (rodzic) ma dwa potomstwo lewe dziecko i prawe dziecko. A Drzewo binarne jest wszechstronną metodą przesyłania danych i przechowywania danych. Jest bardziej wydajny w porównaniu z Linked-List w C. W powyższym artykule widzieliśmy pojęcie Drzewo binarne z wdrożeniem krok po kroku Drzewo wyszukiwania binarnego w c.