2016-11-01 1 views
-1

私は木を横断する際に深さの最初の検索の概念を理解しています。しかし、他のデータ構造(配列、2次元配列など)でdfsを実行する方法が難しいです。これについて考えるにはどうすればよいでしょうか?DFSは非ツリーに対してどのように機能しますか?

+0

アレイ自体をツリーとして視覚化してみてください。 – CyprUS

答えて

0

:あなたは助けることができるいくつかの実装があり、ここで、理解するための最良の方法は、1を実装することであるアレイ、リンクリスト、隣接行列、などを使用して実装することができますDFSは、それを適用するすべての構造に仮想ツリーを作成します。このツリーは構造のspanning treeとして知られています。グラフ、二重グラフ、さらには配列やその他の構造のために存在し、DFSが訪問することができます。もちろん

spanning tree of a grid graph

その木の上ではありません多くのエッジが存在します。無向グラフや構造では、それらは常に「後端」(子ノードから先祖ノードに向かう)ですが、エッジが特定の方向を持つことができるストゥルカットでは、前方エッジである可能性があります(未訪問の子孫ノード)またはクロスエッジ(異なるサブツリーと交差する)

関連する問題