2016-11-21 4 views
0

Javaでグラフを実装する必要があります。コレクションクラスは使用できません。 Adjacency MatrixやAdjacency Listを使って簡単にグラフを作成できますが、リンクされた構造を使って有向グラフを作成する必要があります。リンク構造を使用したJavaでのグラフ表示

私は隣接行列の形を与えられるかもしれない

4   // square matrix size -- all would be square -- square only 
0 1 1 0 
1 1 1 1 
1 0 0 0 
1 1 0 1 

注:これは、4x4の行列になっているが、私はStackOverflowのために正しくフォーマットできません。私はハードリターンを入力する方法を知らない。

Questions regarding Implementation of graph in c++

最高の受け入れ答えに、PMRは書いた:

1.)はい、あなたはまた、明示的にそれを実装することができます

は私の質問を続けると、私はStackOverflowの上で同様の質問を見つけました他のノードへのポインタを使用します。

この回答は私が必要とする解決策の形式です。これは私が困っているところです。私は単に私の頭の中でこの解決策を描くことはできません。問題の1つは、ファイルから読み込まれた複数の子ノードを検索用に参照できるようにする方法です。 1つの隣接リストの実装では、リンクされたリストの配列を作成できますが、使用できません。

これはマルチグラフですか?これはマルチグラフが解決する問題ですか?

代替:私はまた、親ごとに複数の子ノードを持つツリー構造を構想しました。

これをJavaで実装するにはどうすればよいですか?

+0

Javaで組み込み関数を使用するのではなく、独自のリンクリストを実装できますか? – DejaVuSansMono

+0

はい、私は使用できるリンクリストの実装があります。私はそれを自分で作成し、今は十分です。これは動作、テスト、デバッグされています。 –

+0

グラフを横断する必要がありますか?とにかく – DejaVuSansMono

答えて

0

可能な解決策:

各グラフノードを表すクラスを作成します。

class GraphNode { 
    LinkedList<GraphNode> children; 
} 

読み込んだデータの各行は、GraphNodeを表します。その行の各 '1'は、 '1'と同じインデックスのGraphNodeへのリンクを表します。

各行にGraphNodeを作成し、それをGraphNodesのリスト/配列に追加します(おそらく 'allNodes'と呼びます)。 1行に1つまたは0つずつ、カウンタをインクリメントします。 1の場合は、現在のノードの子ノードに、そのインデックスのallNodes(インデックスとしてカウンタを使用)にNodeを追加します。

これで、それぞれに接続されているGraphNodesの独自のリストを持つGraphNodesのリストが表示されます。

希望は意味があります。

関連する問題