PUSH启动索引1到堆栈,标记为访问的堆栈(1)
peek堆栈并找到下一个未访问的节点= 2,标记为访问的堆栈(1,2)和break
确保节点2有未访问的节点,并添加下一个索引4堆栈(1,2,4)
如果没有4个剩余的源节点,则是pop stack(1,2)
最终订单:1,2,4,5,3,6
-
version2-
- PUSH启动索引1到堆栈,标记为访问的堆栈(1)
pop堆叠,然后将所有相邻索引的相邻节点添加到堆栈中(2,3)3是堆栈的顶部
pop堆叠,然后将所有3个相邻节点添加到堆栈(2,6)-
最终订单:1,3,6,2,5,4-
是正确与错的?
DFS实施的两个都是正确的。
- DFS(深度第一次搜索): - 算法用于穿越树数据结构。
您可以以这三种方式实施DF。
- 计时树遍历(左子树 - > root->右子树)
- preorder树遍历(root->左子树 - >右子树
- postroder树遍历(root->右子树 - >左子树)(编辑)
您的版本1:是预订遍历。
您版本2:是邮政遍历。
您可以用来进一步理解DFS:
Geekforgeeks(DFS)