0

OK、私の状況は、アイテムのリストがあり、参照に基づいてこれらのアイテムの順序を取得する必要があるということです。たとえば、次のアイテムがあるとしましょう: A、B、C、D、E、F

C と D には依存関係がないため、順序は 0 になる可能性があります。B は、C、D、および A を最も多く持つものです。A には C があり、F には A と B があります。

  C    D    
  | \  /
  A  /
/ | /
| B 
\ |
  F

この場合 C,D = 0 A = 1 B= 2 F = 3

私はインターネットを調べてきましたが、これに正しい科学用語を使用していないようです. ほとんどの場合、何らかの方法でセットまたはバッグ セットです。この状況は各ノードに 2 つ以上のエッジがあるため、ツリーではないことはわかっています。答えは、プログラミング言語にある可能性があり、可能な限り一般化しようとしています。

4

2 に答える 2

2

簡単なアルゴリズムは次のとおりです。

コレクションを繰り返し、依存関係のない要素を探します。これらの要素を「レベル 0 要素」として覚えておいてください。

コレクションをもう一度繰り返し、「レベル 0 要素」に依存しているが他の要素には依存していない要素を探します。これらの要素を「レベル 1 要素」として覚えておいてください。

コレクションをもう一度繰り返し、「レベル 0 要素」および/または「レベル 1 要素」に依存しているが、他の要素には依存していない要素を探します。これらの要素を「レベル 2 要素」として覚えておいてください。

等。

すべての要素にレベルが割り当てられたら停止します。

于 2009-12-10T16:18:03.050 に答える
0

グラフを作成してポインター数を維持するか、マトリックスを使用できます。グラフの基本的な考え方 (コンピューター グラフではなく、数学) を検索して読んでください。かなり簡単であることがわかります。

于 2009-12-10T16:18:16.280 に答える