在这篇文章中,biziclop 插入了非递归深度优先搜索算法的伪代码。
如果我们想使用递归DFS 算法来检查节点的适当性,我们可以利用两种变体:前序(当一个节点在其子节点之前检查时)和后序(当子节点在其子节点之前检查时)节点),加上仅用于二叉树的第三个变体(按顺序:左子树,然后是节点,然后是右子树)。
由于我有兴趣尽可能拥有所有三个变体,因此我尝试修改 biziclop 的伪代码以获得 DFS 算法的所有三个变体。问题是,我陷入了这样一个事实,即节点在其子节点之前被添加到堆栈(并因此被检查)。任何想法?