내 데이터 구조는 다음과 같이 표시됩니다트리에서 각 노드에 대한 경로를 재귀 적으로 작성하는 방법 - JavaScript?
는var tree = [
{
id: 1,
children: []
}, {
id: 2,
children: [
{
id: 3,
children: []
}
]
}
];
한 지점에 노드 나 어린이의 숫자가있을 수 있습니다.
내 목표는 모든 노드에 대한 경로를 만드는 것입니다. 예를 들어 ID에 대한
: 3의 경로를해야합니다 1> 2> 3 ID : 2 일의 경로를해야합니다> 2 나는이 같은 수정 될 수 있도록 알고리즘을 통해 내 나무를 실행하려면
이 :
나는 트리에서 모든 노드를 방문하는 알고리즘 작성한var tree = [
{
id: 1,
path: [1],
children: []
}, {
id: 2,
path: [2],
children: [
{
id: 3,
path: [2, 3],
children: []
}
]
}
];
: https://plnkr.co/edit/CF1VNofzpafhd1MOMVfj
어떻게 각 노드에 대한 경로를 구축 할 수 있습니까?
function traverse(branch, parent) {
for (var i = 0; i < branch.length; i++) {
branch[i].visited = true;
if (branch[i].path === undefined) {
branch[i].path = [];
}
if (parent != null) {
branch[i].path.push(parent);
}
if (branch[i].children.length > 0) {
traverse(branch[i].children, branch[i].id);
}
}
}
으로 사라진다 이유 갖는 식 (2)에서 시작'1''의 경로? 왜 경로 문자열의 값은 무엇입니까? –
이 단계에서는 문자열이 될 필요가 없습니다. 그들은 결국보기로 출력됩니다. 오, 죄송합니다. 올바른 2 개가 1의 자식 노드가 아닙니다. – user1261710