Ich habe ein Knotenobjekt, das die Knotenebene angibt
public class Node
{
public int Level { get; set; }
}
Ich möchte eine geordnete Liste von Knoten verwenden, um eine Baumansicht zu erstellen
var nodes = new[]
{
new Node(){Level = 0},
new Node(){Level = 1},
new Node(){Level = 1},
new Node(){Level = 1},
new Node(){Level = 2},
new Node(){Level = 1},
new Node(){Level = 2},
new Node(){Level = 2},
new Node(){Level = 3},
};
Was ist der effizienteste Weg, dies zu tun?
Vielen Dank
Rohan
Antworten:
0 für die Antwort № 1Nach Boo wollen Sie eineStapel der Knoten, wenn Sie auf eine höhere Ebene gehen. Wenn der Pegel auf dem aktuellen Knoten höher ist, schieben Sie den vorherigen Knoten auf den Stapel und verwenden Sie ihn als übergeordneten Knoten. Wenn der Pegel niedriger ist als der vorherige Knoten, knoten Sie n Knoten vom Stapel (n = previous_level - current_level) und verwenden Sie den neuen Stack-Top als übergeordneten Knoten.
0 für die Antwort № 2
Schleife über deine Knotenliste. Zeichnen Sie den Index dieses Knotens beginnend mit Index 0 auf. Überprüfen Sie bei allen nachfolgenden Indizes den Pegel mit dem zuletzt aufgezeichneten Level. Fügen Sie ihn als höheren Knoten als Unterknoten des zuletzt hinzugefügten Knotens hinzu. Finden Sie den entsprechenden Knoten, um ihn hinzuzufügen.