質問: java:グラフの表現方法 グラフとその操作方法について学ぶために、いくつかのアルゴリズムを実装しています。 javaでそれを行う最良の方法は何ですか?私はこのようなことを考えていました:public class vertex { private arraylist<vertex> outnodes; //adjacency list. if i wanted to support edge weight, this would be a hash map. //methods to manipulate outnodes } public class graph { private arraylist<vertex> nodes; //algorithms on graphs } しかし、私は基本的にこれを構成しました。もっと良い方法はありますか?また、ダイグラフ、重み付きエッジ、マルチグラフなどのバニラグラフのバリエーションをサポートできるようにしたいです。
回答: http://jung.sourceforge.net/doc/index.html グラフライブラリをご覧ください。独自のアルゴリズムの実装を練習することもできます(開始するには幅優先または深さ優先の検索かもしれません)が、グラフ構造の作成について心配する必要はありません。