V
- il tipo delle etichette dei nodi del grafoE
- il tipo delle etichette degli archi del grafopublic interface SingleSourceShortestPathComputer<V extends PriorityQueueElement,E>
MinPriorityQueue<V>
. La coda può essere
usata per l'inserimento e l'estrazione dei nodi durante l'esecuzione
dell'algoritmo.Modifier and Type | Method and Description |
---|---|
void |
computeShortestPathsFrom(PriorityGraphNode<V> sourceNode)
Inizializza le informazioni necessarie associate ai nodi del grafo
associato a questo calcolatore ed esegue un algoritmo per il calcolo dei
cammini minimi a partire da una sorgente data.
|
Graph<V,E> |
getGraph()
Restituisce il grafo su cui opera questo calcolatore.
|
PriorityGraphNode<V> |
getLastSource()
Restituisce il nodo sorgente specificato nell'ultima chiamata effettuata
a
computeShortestPathsFrom(GraphNode<V>) . |
java.util.List<GraphEdge<V,E>> |
getShortestPathTo(PriorityGraphNode<V> targetNode)
Restituisce una lista di archi dal nodo sorgente dell'ultimo calcolo di
cammini minimi al nodo passato.
|
boolean |
isComputed()
Determina se è stata invocata almeno una volta la procedura di calcolo
dei cammini minimi a partire da un certo nodo sorgente specificato.
|
default java.lang.String |
printPath(java.util.List<GraphEdge<V,E>> path)
Genera una stringa di descrizione di un path riportando i nodi
attraversati e i pesi degli archi.
|
void computeShortestPathsFrom(PriorityGraphNode<V> sourceNode)
sourceNode
- il nodo sorgente da cui calcolare i cammini minimi
verso tutti gli altri nodi del grafojava.lang.NullPointerException
- se il nodo passato è nullojava.lang.IllegalArgumentException
- se il nodo passato non esiste nel
grafo associato a questo calcolatorejava.lang.IllegalStateException
- se il calcolo non può essere
effettuato per via dei valori dei
pesi del grafo, ad esempio se il
grafo contiene cicli di peso
negativo.boolean isComputed()
PriorityGraphNode<V> getLastSource()
computeShortestPathsFrom(GraphNode<V>)
.java.lang.IllegalStateException
- se non è stato eseguito nemmeno una
volta il calcolo dei cammini minimi a
partire da un nodo sorgenteGraph<V,E> getGraph()
java.util.List<GraphEdge<V,E>> getShortestPathTo(PriorityGraphNode<V> targetNode)
targetNode
- il nodo verso cui restituire il cammino minimo
dalla sorgentenull
se il nodo passato non è raggiungibile dalla
sorgentejava.lang.NullPointerException
- se il nodo passato è nullojava.lang.IllegalArgumentException
- se il nodo passato non esistejava.lang.IllegalStateException
- se non è stato eseguito nemmeno una
volta il calcolo dei cammini minimi
a partire da un nodo sorgentedefault java.lang.String printPath(java.util.List<GraphEdge<V,E>> path)
"[ ]"
.path
- un cammino minimojava.lang.NullPointerException
- se il cammino passato è nullo