Struktury drzewiaste


(radmar) #1

witam,

jeśli mam klasę Tree, oraz wskaźniki tej klasy left i right i mam zamiar w oparciu o tą klasę tworzyć drzewo binarne w jaki sposób proponujecie zrealizować dodawanie kolejnych elementów do drzewa?


(Drobok) #2

Nie rozumiem pytania. Musisz se wybrać w którym miejscu dodajesz. Domyslne wartości null, i potem się bawisz w zmianę danego wskaźnika na ten dodany. Coś jak w liście dwukierunkowej z tym, że drugi wskaźnik nie pokazuje poprzedniego elementu lecz drugi następny. Lecz musisz se również obsłużyć brak miejsca na dodanie kolejnego elementu.


(Sawyer47) #3

Również nie do końca rozumiem pytanie (a przynajmniej jest dla mnie niejasne). Tak czy siak jeśli masz jakiś wątpliwości, zobacz jak inni to zrobili:

http://developer.gnome.org/glib/2.29/gl ... Trees.html

http://www.google.com/codesearch/p?hl=p ... ib/gtree.c


(radmar) #4

powiedzmy że chcę dodać element do drzewa - skąd mam wiedzieć np. który rodzic ma które miejsce wolne?


(Sawyer47) #5

Jeśli chcesz robić BST ( http://pl.wikipedia.org/wiki/Binarne_dr ... kiwa%C5%84) to, cytujac


(radmar) #6

dalej źle pytanie postawiłem, jeśli chcę dodawać w czasie działania programu do drzewa jakie wartości(np typu int) - w jaki sposób mogę to zrealizować, tak abym wiedział z poziomu kodu jak dodać, gdzie ?


(Sawyer47) #7

Podstawowe pytanie: czy to ma być binarne drzewo poszukiwań (BST)? Czemu ma ono służyć?


(radmar) #8

tak BST


(Sawyer47) #9

No to jeśli jest to BST to jest taka zasad jak zacytowane powyżej. Tu masz pseudokod nawet http://pl.wikipedia.org/wiki/Binarne_dr ... nie_klucza