2017-07-10 4 views
1

Ich lerne AVL-Tree und bekam TLE in rekursivem Code. Mein Tutor schlägt eine iterative Lösung vor. Ich suchte und fand eine Lösung, die Elternknoten in Kind speichert. Ich frage mich, ob dies ein Problem im Gedächtnis bekommen könnte, oder? Und gibt es eine andere Möglichkeit, in AVL Tree einzufügen, löschen, was nicht in übergeordnete untergeordnete gespeichert werden muss? Bitte gib mir einen Hinweis.AVL-Baum nicht rekursiv

Antwort

2

Es gibt mehrere Möglichkeiten bei der Umsetzung von AVL-Bäume: - Rekursion oder iterativen - Öffnungsausgleichsfaktor (Höhe der rechten minuser Höhe von links) oder Höhe - Öffnungsmutter Referenz oder nicht

rekursive mit Höhe neigt dazu, Geben Sie die eleganteste Lösung, aber iterativ kann in einigen Fällen besser sein, also ist es eine Überlegung wert. Sie können über die Auswahl lesen: http://www.eternallyconfuzzled.com/tuts/datastructures/jsw_tut_avl.aspx und sehen eine iterative Implementierung in Java: https://github.com/dmcmanam/bbst-showdown