Binärbaum auf binären Suchbaum (BST)

stimmen
1

Wie können Sie Binary Tree auf binären Suchbaum mit O (1) zusätzlicher Raum umwandeln?

Veröffentlicht am 17/05/2010 um 10:56
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
6

einen ungeordneten binären Baumes in einen geordnete binären Suchbaum Umwandlung ist trivial, aber ein bisschen schwieriger schnell zu tun.

Hier ist eine naive Implementierung, die Ihre Kriterien erfüllen sollte, werde ich nicht die tatsächlichen Schritte beschreibt, zu nehmen, nur um den Gesamtalgorithmus.

  1. Schnappen Sie sich einen Zufallsblattknoten aus Ihrem bestehenden Baum
  2. Unlink den Blattknoten aus Ihrem bestehenden Baum
  3. Machen Sie den Knoten die Wurzel Ihrer neuen binären Suchbaum
  4. Schnappen Sie einen anderen Zufallsblattknoten aus Ihrem bestehenden Baum
  5. Verknüpfung aufheben, dass der Knoten aus Ihrem bestehenden Baum
  6. Finden Sie den richtigen Ort für, und verbindet die Knoten, in dem neuen binären Suchbaum
  7. Wiederholen Sie Schritt 4-6, bis der ursprüngliche Baum ist leer

Sie sollten nur wenige Variablen erfordern, wie die Eltern des Blattknoten Sie Entkoppeln (es sei denn, der Knoten hat Eltern-Links), den Wurzelknoten des neuen Baum und ein paar temporäre Variablen, die alle innerhalb Ihrer O (1 ) Raum Kriterien.

Dies wird nicht einen optimalen binären Suchbaum erzeugen. Dafür müssen Sie entweder die Knoten sortieren, bevor das Hinzufügen ihnen, und das Hinzufügen von ihnen in der richtigen Reihenfolge, oder verwenden Sie einen ausgleichenden binären Suchbaum, wie ein Rot-Schwarz-Baumes oder einen gespreizten Baum.

Beantwortet am 17/05/2010 um 11:24
quelle vom benutzer

stimmen
-1

Konvertieren Binary Tree zu einem doppelt verknüpften Listen- kann Inplace in O (n) es dann sortieren mit Mergesort erfolgen, nlogn Konvertieren Sie die Liste zurück an einem Baum - O (n)

Einfache nlogn Lösung.

Beantwortet am 18/02/2014 um 20:52
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more