문제

노드 레벨을 지정하는 노드 객체가 있습니다.

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

주문한 노드 목록을 사용하여 TreeView를 구성하고 싶습니다.

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

이 작업을 수행하는 가장 효율적인 방법은 무엇입니까?

감사

로한

도움이 되었습니까?

해결책

Boo를 따라 가면 더 높은 수준으로 나아갈 때 노드 스택을 유지하고 싶을 것입니다. 현재 노드에서 레벨이 더 높으면 이전 노드를 스택으로 밀어서 부모로 사용하십시오. 레벨이 이전 노드보다 낮은 경우 스택에서 팝 N 노드 (n = prevery_level -current_level)를 모르고 새 스택 탑을 부모로 사용하십시오.

다른 팁

노드 목록을 통해 루프. 색인 0부터 시작하여 해당 노드 레벨을 기록하십시오. 모든 후속 인덱스에서 마지막 기록 된 레벨에 대한 레벨을 확인하십시오. 더 높으면 마지막 추가 노드의 서브 노드로 추가하십시오. 더 낮은 경우, 더 낮은 경우에 문제가있는 경우 .. 추가 할 적절한 노드를 찾으십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top