Przeczytaj
Konstrukcja drzew binarnych
Wiemy, że dla w definicji pewnej klasy możemy zaimplementować dwa wskaźniki do obiektów tego samego typu. W ten sposób możemy stworzyć bardziej złożone struktury niż listy jednokierunkowe.
Dwukierunkowe listy tworzymy, gdy w obiekcie pewnej klasy zdefiniujemy wskaźnik do innego obiektu tego samego typu. Obiekty tego samego typu można łączyć w strukturę danych zwaną listą (zagadnienie to zostało omówione w e‑materiale Podstawowe struktury danych: listaPodstawowe struktury danych: lista).
W programowaniu w języku Python drzewo poszukiwań binarnychdrzewo poszukiwań binarnych realizuje się jako strukturę danych z dowiązaniami, w której każdy węzeł będzie obiektem o trzech polach:
klucz– klucz węzła; przechowuje określoną wartość, np. typu stałoprzecinkowego;lewy– odnośnik do lewego syna;prawy– odnośnik do prawego syna.

Konstruktor klasy przyjmuje tylko wartość klucza.
Domyślnie atrybuty lewy i prawy będą ustawione na None
W języku Python klasa Wezel będzie reprezentować węzeł drzewa.
Konstruktor klasy przyjmuje tylko tylko wartość klucza klucz typu int. Domyślnie atrybuty lewy i prawy będą ustawione na None.
Aby dodać pewien węzeł do drzewa binarnego, należy w polu lewy lub prawy już istniejącego węzła przypisać referencję do węzła, który chcemy dodać.
W celu zdefiniowania drzewa w języku Python zwykle stosuje się jedną zmienną korzen będącą referencją do korzenia drzewa. Z poziomu tej zmiennej możemy się dostać do dowolnego węzła w drzewie binarnym poprzez ciąg odwołań do synów korzenia.
Operacje na obiektach klasy Wezel wykonujemy poprzez tworzenie instancji tej klasy. Dostęp do pól obiektu uzyskujemy używając notacji kropkowej.
Aby stworzyć reprezentację drzewa, które zostało zaprezentowane na ilustracji na początku e‑materiału, użyjemy klasy Wezel, utworzymy jej instancje dla każdego węzła i przypiszemy im odpowiednio lewe i prawe poddrzewa.
W zaprezentowanym kodzie tworzymy nowe węzły i przypisujemy im odpowiednio wartości klucza. Przypisujemy także węzły lewy i prawy do każdego utworzonego węzła, aby odtworzyć strukturę drzewa z ilustracji.
Słownik
struktura danych, która reprezentuje drzewo matematyczne, w której występują wierzchołki, krawędzie, liście i korzeń
drzewo ukorzenione, w którym każdy węzeł ma najwyżej dwóch synów
węzeł (element) w drzewie, który nie ma żadnego rodzica; pierwszy element drzewa
dynamiczna struktura danych, która ma przechowywać nieznane z góry ilości danych tego samego typu; zbudowana jest z węzłów, z których każdy składa się z pojedynczego elementu przechowywanego w liście oraz wskaźnika do kolejnego elementu listy
węzeł (element) w drzewie, który nie ma żadnych następników (potomków); często liśćmi są węzły najbardziej oddalone od korzenia
zmienna za pomocą której program jest w stanie pobrać wartość bądź instancję znajdującą się w pamięci komputera; w języku Python każda zmienna jest referencją odwołująca się do pewnej wartości bądź instancji obiektu w pamięci; przypisując zmiennej inną zmienną, tak naprawdę przypisujemy odwołanie od pewnego miejsca w pamięci, do którego odwoływała się druga zmienna
część programu, która wykorzystuje zarezerwowaną pamięć bez jej ostatecznego zwalniania