2011-10-22 5 views
3

私は有向グラフを使っています。ノードの数とノード間のすべてのリンクが与えられます。私はベクトルの配列でタスクを実行しようとしましたが、javaはサポートしていません。 ArrayListとVectorsはランダムアクセスイテレータをサポートしていますが、私は新しいので、javaでそれを行うことができません。私はそれのために二次元の行列を使用したくありません。私はそれをN個の与えられたノードの配列として実装したいと思います。各ノードには接続されているノードのリストがあります。誰かが私に助けを与える擬似コードまたは何かを提供してください。例えば、グラフは、コアJavaでグラフを実装する方法は?

5 
3 4 
4 2 
1 5 
4 3 
1 3 
2 5 

ここで5つのノード番号1~5が与えられている。以下は、第1のノードから第2のノードへの有向エッジである。グラフの隣接リストとして表現したい。誰もそれの実装を与えることができますか?

+2

このページの右下に列に表示されてStackOverflowの上の関連コンテンツを見ることもできます。また、Collectionsライブラリ(ArrayLists、Vectors、...)などのJavaライブラリに関する知識が不足している場合は、これらの便利なツールを使用できるように、いくつかのチュートリアル用のGoogleをぜひご利用ください。また、関連コンテンツのリンクは、グラフの作成と操作のために特別に構築されたサードパーティライブラリについても説明します。 –

+0

私はこのサイトだけでなくGoogleでも検索しましたが、見つかりませんでした。ついに私は自分の質問をしなければならない。また、私はサードパーティのライブラリを使用したくありません。 –

+0

また、関連するコンテンツは、始める方法と獲得する必要のあるナレッジベースを知らせるためにも役立ちます。あなたがまだ課題を把握できない場合でも、情報は少なくともあなたがより精通した特定の質問を書くのを助けるでしょう。 –

答えて

4

adjacency list例えば、Map<Node, List<Node>>またはList<List<Node>>が適切であり得る。

補遺:JavaのCollectionsを使用して、あなたがあなたのデータを使用して実装するアルゴリズムの要件に基づいてimplementations特定選びたいかもしれないMapListは、特徴的な方法を提供interfacesをしていることに注意することが役立つかもしれません構造。

補足:関連例hereがあります。

+0

はい、私はarraylistのarraylistとの隣接リストでそれをしようとしましたが、イテレータで値を挿入することができませんでした。 –

+1

ああ、問題を説明している[sscce](http://sscce.org/)を含むように質問を編集したいと思うでしょう。 – trashgod

+0

私は上記の例にリンクしました。 – trashgod

1

多くのコレクションデータ構造、特にハッシュテーブルまたはセットを目的に使用できます。 Javaはコレクションジェネリックコンテナ(HashMap-s、ArrayList-sなど)をたくさん提供します。私はJavaの専門家ではありませんが、Javaコレクションを検索すると、非常に多くの結果が得られます。 this tutorial

1

まっすぐ使用するのではなく、指定された重み付けされていないグラフの実装を求めているのは残念です。それ以外の場合は、JUNG2と呼ばれるネットワーク/グラフに関係するほとんどすべてのものに対して、簡単に作成できるフレームワークを使用するようお勧めします。 GUIまたは非GUIモードのいずれかで使用できます。それはあなたに多くの時間を節約するでしょう。続いてそのチュートリアルのリンクです:

http://www.grotto-networking.com/JUNG/JUNG2-Tutorial.pdf

関連する問題