/ / Wyświetla listę węzłów w TreeView - c #, treeview, tree

Wyświetl listę węzłów w TreeView - c #, treeview, tree

Mam obiekt węzła, który określa poziom węzła

public class Node
{
public int Level { get; set; }
}

Chcę użyć uporządkowanej listy węzłów do utworzenia widoku drzewa

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},
};

Jaki jest najskuteczniejszy sposób na zrobienie tego.

Dzięki

Rohan

Odpowiedzi:

0 dla odpowiedzi № 1

Podążając od Boo, będziesz chciał zachowaćstos węzłów podczas przechodzenia na wyższy poziom. Jeśli poziom jest wyższy w bieżącym węźle, wypchnij poprzedni węzeł na stos i użyj go jako rodzica. Jeśli poziom jest niższy niż w poprzednim węźle, pop n węzłów ze stosu (n = previous_level - current_level) i użyj nowego stosu jako rodzica.


0 dla odpowiedzi nr 2

Przeprowadź pętlę nad listą węzłów. Zaczynając od indeksu 0, zapisz ten poziom węzła, we wszystkich kolejnych indeksach sprawdź poziom względem ostatniego zapisanego poziomu, jeśli jest wyższy, dodaj go jako podwęzeł ostatnio dodanego węzła, a jeśli jest niższy, to w przypadku problemów z mniejszymi przypadkami. znajdź odpowiedni węzeł, do którego go dodasz.