0

学校の課題のグラフ構造を構築しています。現在、隣接リストとして表されています。キーがグラフのノード(頂点)であり、値がエッジ(「重み」とともにソースノードと宛先ノードのポインターを含むオブジェクト)のリストであるハッシュマップを使用しています。 )キーノードに関連付けられています。

次のタスクはトポロジカルソートをコーディングすることですが、行き詰まります。始めるのに最適な方法は、各ノードオブジェクトに度(ノードにつながるエッジの量)の整数フィールドを指定することだと思いますが、これをすべてのノードに割り当てる方法を思い付くことができません。私がすでに持っているものを考えると。

助言がありますか?

4

1 に答える 1

0

ノードの概念も作成することをお勧めします。つまり、Edgeオブジェクトであるだけでなく、Nodeオブジェクトもあります。より優れたモデリングは、常に問題をより迅速に解決するのに役立ちます。Nodeインスタンスに追加情報を格納できるため、NodeでHashMapを定義すると、この場合は整数が役立ちます。

ただし、現在の構造を維持する必要がある場合は、特定のノードにつながるエッジの数を知るために、HashMap entrySetのさまざまな値を反復処理する必要があります(これは、あなたが言ったことに基づいて、エッジ)そして、探しているノードが宛先ノードを持っているエッジを確認します。ただし、この情報は補助構造に格納する必要があります(別のマップがあります)

于 2012-11-24T01:07:55.027 に答える