パッケージ library.graph
クラス Graph
- すべての実装されたインタフェース:
Serializable
,Cloneable
,Iterable<ArrayList<Edge>>
,Collection<ArrayList<Edge>>
,List<ArrayList<Edge>>
,RandomAccess
,SequencedCollection<ArrayList<Edge>>
グラフクラス
- 関連項目:
-
フィールドの概要
クラスから継承されたフィールド java.util.AbstractList
modCount
-
コンストラクタの概要
-
メソッドの概要
修飾子とタイプメソッド説明final void
addEdge
(int a, int b) 辺を追加するfinal void
addEdge
(int a, int b, long cost) 重みつきの辺を追加するfinal int[]
allDist
(int v) BFSをして頂点vから各頂点に対する距離を求めるfinal int[]
サイクル検出final long
diameter()
path(直径を構成する辺)を構築するfinal ShortestPath
dijkstra
(int v) Dijkstra法 負辺のないグラフで単一始点全点間最短路を求めるfinal MST
directed
(int v) 最小有向全域木を求めるfinal int
dist
(int u, int v) 頂点uと頂点vとの距離final long[][]
Floyd-Warshall法 全点対間最短路を求めるfinal Edge[]
getEdge()
辺の配列を返すfinal Edge[]
getPath()
pathを返すfinal void
input
(int m) 辺をm個入力するfinal MST
kruskal()
Kruskal法によって最小全域木を求めるstatic Graph
グラフ化するfinal long[]
spfa
(int v) Shortest Path Faster Algorithm 負辺が存在していても単一始点全点間最短路を求められる 負閉路も検出するfinal int[][]
toArray()
グラフを二次元配列にして返すトポロジカルソートtoString()
クラスから継承されたメソッド java.util.ArrayList
add, add, addAll, addAll, addFirst, addLast, clear, clone, contains, ensureCapacity, equals, forEach, get, getFirst, getLast, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeFirst, removeIf, removeLast, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, trimToSize
クラスから継承されたメソッド java.util.AbstractCollection
containsAll
インタフェースから継承されたメソッド java.util.Collection
parallelStream, stream, toArray
インタフェースから継承されたメソッド java.util.List
containsAll, reversed
-
コンストラクタの詳細
-
Graph
public Graph(int n, int indexed, boolean undirected, boolean weighted) コンストラクタ- パラメータ:
n
- 頂点の個数indexed
- ?-indexed 0-indexedなら0, 1-indexedなら1undirected
- 無向グラフかどうか 無向グラフならtrue, 有向グラフならfalseweighted
- 重みつきかどうか 重みつきならtrue, 重みなしならfalse
-
-
メソッドの詳細
-
of
グラフ化する- パラメータ:
g
-undirected
-weighted
-- 戻り値:
- List入力が無効です: '<'ArrayList
>をWeightedGraph化したもの
-
addEdge
public final void addEdge(int a, int b) 辺を追加する- パラメータ:
a
-b
-
-
addEdge
public final void addEdge(int a, int b, long cost) 重みつきの辺を追加する- パラメータ:
a
-b
-cost
-
-
input
public final void input(int m) 辺をm個入力する- パラメータ:
m
- 辺の個数
-
getEdge
辺の配列を返す- 戻り値:
- 辺の配列
-
toArray
public final int[][] toArray()グラフを二次元配列にして返す -
allDist
public final int[] allDist(int v) BFSをして頂点vから各頂点に対する距離を求める- パラメータ:
v
-
-
dist
public final int dist(int u, int v) 頂点uと頂点vとの距離- パラメータ:
u
-v
-- 戻り値:
- 頂点uと頂点vとの距離
-
topologicalSort
トポロジカルソート -
cycleDetector
public final int[] cycleDetector()サイクル検出- 戻り値:
- サイクル if non-existence: 空配列
-
diameter
public final long diameter()path(直径を構成する辺)を構築する- 戻り値:
- 木の直径
-
getPath
pathを返す- 戻り値:
- 直径を構成する辺
-
dijkstra
Dijkstra法 負辺のないグラフで単一始点全点間最短路を求める- パラメータ:
v
-
-
spfa
public final long[] spfa(int v) Shortest Path Faster Algorithm 負辺が存在していても単一始点全点間最短路を求められる 負閉路も検出する- パラメータ:
v
-
-
floydWarshall
public final long[][] floydWarshall()Floyd-Warshall法 全点対間最短路を求める -
kruskal
Kruskal法によって最小全域木を求める -
directed
最小有向全域木を求める- パラメータ:
v
-- 関連項目:
-
toString
- オーバーライド:
toString
クラス内AbstractCollection<ArrayList<Edge>>
-