Привет. есть дерево, в таком виде
var node1 = { n:1 }, node2 = { n:2 }, node3 = { n:3 }, node4 = { n:4 },
node5 = { n:5 }, node6 = { n:6 }, node7 = { n:7 }, node8 = { n:8 };
node1.children = [ node2, node6, node7 ];
node2.children = [ node3, node4 ];
node4.children = [ node5 ];
node7.children = [ node8 ];
надо было реализовать Depth-first search
function* depthTraversalTree(root) {
yield root;
if(root.children){
for(let child of root.children){
yield* depthTraversalTree(child);
}
}
}
обязательно через yield
при большем дереве получаю ошибку Maximum call stack size exceeded
Как исправить