Abrufen einer Binary-Tree-Knoten der Tiefe nicht rekursiv

Kann jeder Punkt aus, um die Tiefe eines Knotens in einem Binären Baum (nicht ein symmetrisches, oder BST) ohne Verwendung von Rekursion? Idealerweise in Java/C/C#

Den Knoten wird dargestellt als:

class Node
{
  Node Left;
  Node Right;
  string Value;
  int Depth;
}

Mit Niveau, Um mit einer FIFO-Liste war mein Erster Gedanke, aber ich war ratlos bei der Erkennung, wenn das Niveau ändert sich, insbesondere bei unsymmetrischen Bäumen.

Rekursion ist der einfachste Weg, dies zu tun, was ist der Grund, warum Sie es vermeiden wollen?
Ist das Feld Tiefe der Abstand von der Wurzel, oder aus dem hintersten Kind?
Kirschstein: Es gibt Gründe, um zu vermeiden, rekursive Aufrufe auf Plattformen mit begrenzten Ressourcen (z.B. embedded systems). Eine nicht rekursive Algorithmus mit einem Konstanten memory foot print ist oft notwendig.
Worrier: Ah, ich sehe. Dank
Die Rekursion Beiträge, die ich gelesen habe, SO geben Sie den Rat, dass die Rekursion sollte verwendet werden, für maximal 10 Ebenen. 10 Ebenen in einem vollständigen Baum ist 1024 Elemente, also bin ich mal gespannt, wie Sie es tun würde, für mehr als das (was ich davon ausgehen, andere Bäume basierend auf den Binären Baum verwenden würde, jedoch stets symmetrisch)

InformationsquelleAutor Chris S | 2009-06-17

Schreibe einen Kommentar