グラフをそのコンポーネントに分割したい(例DAGのように)。コンポーネント)。画像のコンポーネントを見つけたら、そのコンポーネントのルートと最後の子を探したいと思います。 青のコンポーネントを取ると、ルートはE
、最後の子はH
になります。 緑色:ルートB
- 最後の子H
。Directed Acyclic Graph(DAG)をコンポーネントに分割し、それらのコンポーネントのルートと最後の子を見つける
例のグラフ:
あなたはE
との間の接続を見つけることができれば - コンポーネントにそれを分割せずにI
からH
、B
からE
、B
からH
、A
を。それが私の最終目標であることを私に教えてください。
コンポーネントのコンパイルについて。それが実際に私の最終目標です。私はちょうどあなたが私が達成しようとしているもののより良い理解を得るためにそれを含めるためにしたかった。これは一度これらの接続を見つけることはできません。
Iが役に立ったと評価していますが、私の質問答えていない質問:
Algorithm to find lowest common ancestor in directed acyclic graph?
Finding best common ancestor of two leaf nodes where nodes have zero, one, or two parents
(これらの答えは十分かもしれないが、私は実装する方法がわからないがそれ)
注:
(あなたがサンプルコードを投稿するつもりなら)これは私の最初の質問であるC++やC#で
をすべてのサンプルコードを投稿してください。私が何か間違ったことがあったなら、私に知らせてください。
//ビッグ編集: は、私が何をしたい、それがより明確にする質問を作り直しました。もっと役に立つと思うかもしれないコンポーネントを紹介しました。
私はこの質問の2日前に回答を探し続けています。私が見つけたら明らかに回答を投稿します! – Glaze
開始ノードの_all_親のLCAを計算しますか(これは複数の最小要素を持つグラフでは結果を生成しません)、開始ノードの少なくとも2つの親に対してLCAである_closest_ノードを検索しますか(これにはいくつかの解決策があります)。その違いを見るには、サンプル・グラフに '(C、H)、(D、H)'の辺を追加します - 希望の結果は開始ノード 'H'の' E'または 'B'でしょうか? – collapsar
コメントありがとうございました!本当に良い点!グラフと質問をより複雑なグラフに更新して、私が望むものを正確に表示します。 – Glaze