グラフを検索するためのアルゴリズムを作成し、フラグを使用してノードにアクセスしたかどうかを示したので、グラフに円がある場合でもループに陥ることはありません。
後で、2つではなく3つの状態を使用するアルゴリズムブックを確認しました。3つ目は「VISITING」状態です。それなしで検索できるのに、なぜそこにあるのだろうと思っていました。
グラフを検索するためのアルゴリズムを作成し、フラグを使用してノードにアクセスしたかどうかを示したので、グラフに円がある場合でもループに陥ることはありません。
後で、2つではなく3つの状態を使用するアルゴリズムブックを確認しました。3つ目は「VISITING」状態です。それなしで検索できるのに、なぜそこにあるのだろうと思っていました。
「visiting」状態はあまり意味がありません。すべてのノードがこの状態になるのは、隣接ノードを処理してキューに入れるときだけです。その時点でどのノードを訪問しているかを完全に把握できます。
理にかなっている (ただし、まだ必要ではない) のは、このアニメーション (ウィキペディアから) の灰色のノードなどの「キューに入れられた」状態です。
厳密には必要ではありませんが、BFS を基本的な構成要素として使用する一部のアルゴリズムはこの情報を使用するため、余分な状態になります。
イラストは何が起こっているのかをよりよく理解できるので、教育の観点からもメリットがあると思います.