3
DFSとBFSの実装では、CLRSの作者はグレー、ブラック、ホワイトの各頂点ごとに3色を区別します。私は黒と白がノードが訪問されたかどうかを示していることを理解しています。なぜ灰色を必要としますか?DFSでグレー色を、CLRSでBFSを実装する目的は何ですか?
私の推測ではサイクルを検出することになりますが、黒色のサイクルを検出することは可能ですか?&白(つまり、グレーなし)?
DFSとBFSの実装では、CLRSの作者はグレー、ブラック、ホワイトの各頂点ごとに3色を区別します。私は黒と白がノードが訪問されたかどうかを示していることを理解しています。なぜ灰色を必要としますか?DFSでグレー色を、CLRSでBFSを実装する目的は何ですか?
私の推測ではサイクルを検出することになりますが、黒色のサイクルを検出することは可能ですか?&白(つまり、グレーなし)?
主な理由は、読者が概念をよりよく理解できるようにすることです。しかし、実際にはグレーのノードを使用するいくつかのアルゴリズムがあります。たとえば、有向グラフのサイクルを見つけるためにはグレーノードが必要です。ブラックのネイバーはサイクルを示しておらず、グレーの近隣はサイクルを作成しています。
A->B, B->C, A->C
A->C
はC
が黒であるにもかかわらずサイクルを作成できません。