/ / Zeigt eine Liste von Knoten in einer TreeView an - c #, Baumansicht, Baum

Zeigt eine Liste von Knoten in einem TreeView an - c #, treeview, tree

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 № 1

Nach 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.