Seite 1 von 1
Baum implementieren
Verfasst: Dienstag 16. Mai 2017, 13:19
von CoderGirl
Hallo
ich würde gerne einen binären Baum implementieren und an den Knoten dann Informationen
wie name und ID ablegen.
Später will ich auch auf die konkrete ID des Baumknotens zugreifen können?
Wie würdet ihr denn dies am besten umsetzen?
Gibt es da eine besonders gut passende Struktur für?
lg
codergirl
Re: Baum implementieren
Verfasst: Dienstag 16. Mai 2017, 13:54
von __deets__
Kannste halten wie ein Dachdecker
Du kannst ein Objekt nehmen:
Code: Alles auswählen
class Node(object);
def __init__(self, left=None, right=None, data=None):
...
Du kannst einfach verschachtelte Listen nehmen und zB Tupel mit den Daten
Code: Alles auswählen
[[("id", "was anderes)], [("andere id", "noch was anderes")]]
Natuerlich auch dictionarys (sehen dann im Grunde aus wie die Objekte, nur mit keys statt Attributen).
Und natuerlich auch noch mehr, zB die klassische Array-Repraensentation, bei der du die Kinder eines Elementes i an der Stelle 2*i und 2*i + 1 (oder so aehnlich, genaueres
https://de.wikipedia.org/wiki/Bin%C3%A4 ... _ein_Array ) stehen. Da hast du dann bei einem unterbesetzten Baum viele "Leerstellen".
Was davon nun das beste ist haengt sehr von deinem Anwendungszweck ab. Ist der baum ausgeglichen, kennst du seine endgueltige Groesse, musst du ihn veraendern.. usw.
Re: Baum implementieren
Verfasst: Dienstag 16. Mai 2017, 14:24
von BlackJack
Eventuell muss es auch gar kein binärer Baum sein und ein Wörterbuch ganz normal als Abbildung ID auf Knoten(daten) würde ausreichen. Oder eine Heapqueue in einer Liste (da gibt's ein Modul in der Standardbibliothek).
Re: Baum implementieren
Verfasst: Dienstag 16. Mai 2017, 14:43
von beertonic
Es kommt drauf an was du später damit machen willst.
Re: Baum implementieren
Verfasst: Dienstag 16. Mai 2017, 15:27
von CoderGirl
Ok danke euch
damit kann ich was anfangen.
Wollte nur nachfragen, ob es da nicht mal wieder die Megastruktur gibt
und ich am Ende mich unnötig rumschlage

Re: Baum implementieren
Verfasst: Dienstag 16. Mai 2017, 16:00
von BlackJack
@CoderGirl: Naja, wenn man irgendwelche Standardgraphenalgorithmen auf die Knoten loslassen möchte würde ich NetworkX für die Knoten verwenden.
Bezüglich Deiner Signatur („Leider kann man im Leben nicht alles pürieren....“) empfehle ich eine Suche nach
„will it blend“ auf YouTube. Ich wette da ist jemand anderer Meinung.

Re: Baum implementieren
Verfasst: Mittwoch 17. Mai 2017, 15:46
von CoderGirl
@BlackJack:
Naja, ich dachte an den Baum, die die Daten in einer binären Struktur vorliegen.
Werd es wohl über ein dictionary machen und den Key als ID verwenden
Und das Video:
