深度优先遍历
2023-11-16 13:57:33 2 举报
深度优先遍历
作者其他创作
大纲/内容
callback
3
8
6
2
1
stack
9
创建一个节点作为根节点
执行while循环,从stack的尾部取出一个节点【6】通过callback获取到第一个节点进行操作将下级节点【10】添加到stack中
[5]
5
10
执行while循环,从stack的尾部取出一个节点【5】通过callback获取到第一个节点进行操作将下级节点【9】添加到stack中
[2]
4
执行while循环,从stack的尾部取出一个节点【2】通过callback获取到第一个节点进行操作将下级节点【5】添加到stack中
1. 创建四个节点作为三级节点2. 将节点分别添加到二级节点
7
1. 添加四级节点
1. 创建三个节点作为二级节点2. 将节点分别添加到根节点
执行while循环,从stack的尾部取出一个节点【4】通过callback获取到第一个节点进行操作将下级节点【8】添加到stack中
[9]
执行while循环,从stack的尾部取出一个节点【10】通过callback获取到第一个节点进行操作无子节点
const root = new Node(1)
[1]
const child4 = new Node(5)const child5 = new Node(6)const child6 = new Node(7)const child7 = new Node(8)child1.children.push(child4);child2.children.push(child5);child2.children.push(child6);child3.children.push(child7);
执行while循环,从stack的尾部取出一个节点【8】通过callback获取到第一个节点进行操作没有子节点,所以不用添加
while之后的stack
[]
span style=\"font-size: inherit;\
执行while循环,从stack的尾部取出一个节点【9】通过callback获取到第一个节点进行操作无子节点stack为空结束循环
const child1 = new Node(2)const child2 = new Node(3)const child3 = new Node(4)root.children.push(child1);root.children.push(child2);root.children.push(child3);
执行while循环,从stack的尾部取出一个节点【7】通过callback获取到第一个节点进行操作无子节点
child4.children.push(new Node(9));child5.children.push(new Node(10));
0 条评论
下一页