问题描述 投票:0回答:1


PUSH启动索引1到堆栈,标记为访问的堆栈(1)

peek堆栈并找到下一个未访问的节点= 2,标记为访问的堆栈(1,2)和break

确保节点2有未访问的节点,并添加下一个索引4堆栈(1,2,4)
如果没有4个剩余的源节点,则是pop stack(1,2)

最终订单:1,2,4,5,3,6
  1. version2
  2. PUSH启动索引1到堆栈,标记为访问的堆栈(1)
  3. pop堆叠,然后将所有相邻索引的相邻节点添加到堆栈中(2,3)3是堆栈的顶部 pop堆叠,然后将所有3个相邻节点添加到堆栈(2,6)
  4. 最终订单:1,3,6,2,5,4
是正确与错的?

    DFS实施的两个都是正确的。
  1. DFS(深度第一次搜索): - 算法用于穿越树数据结构。 您可以以这三种方式实施DF。
  2. 计时树遍历(左子树 - > root->右子树)
  3. preorder树遍历(root->左子树 - >右子树
  4. postroder树遍历(root->右子树 - >左子树)(编辑)

您的版本1:是预订遍历。 您版本2:是邮政遍历。 您可以用来进一步理解DFS:

Geekforgeeks(DFS)
algorithm depth-first-search
1个回答
-1
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.