public class Graph
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
(package private) Arc[][] |
a
La matrice degli archi
|
(package private) Matrix |
adiac
La matrice di adiacenza
|
(package private) Matrix |
conn
La matrice delle connessioni
|
(package private) int |
LEN |
(package private) Node[] |
n
L'elenco dei nodi
|
(package private) int |
PRICE |
Constructor and Description |
---|
Graph()
crea un Graph vuoto
|
Graph(java.io.BufferedReader br)
Crea un Graph prelevando da un BufferedReader la descrizione di un grafo in due formati.
|
Graph(java.io.BufferedReader br,
Graph og)
Crea un Graph prelevando da un BufferedReader la descrizione di un grafo in due formati.
|
Graph(java.io.Reader r)
Crea un Graph prelevando da un Reader la descrizione di un grafo in due formati.
|
Graph(java.io.Reader r,
Graph og)
Crea un Graph prelevando da un Reader la descrizione di un grafo in due formati.
|
Graph(java.lang.String[][] couples)
crea un Graph partendo dall’elenco delle coppie di nodi
unite da un arco.
|
Graph(java.lang.String[][] couples,
double[] prices)
crea un Graph partendo dall’elenco delle coppie di nodi
unite da un arco.
|
Graph(java.lang.String[] name,
int[][] matAd)
crea un Graph fornendo la matrice di adiacenza del grafo e la matrice contente i nomi dei nodi
|
Graph(java.lang.String[] name,
int[][] matAd,
double[][][] p)
crea un Graph fornendo la matrice di adiacenza del grafo pesato, la matrice dei pesi degli archi e la matrice contente i nomi dei nodi
|
Modifier and Type | Method and Description |
---|---|
Arc |
addArc(Arc arc)
Aggiunge un arco al grafo
|
Arc |
addArc(Node sorg,
Node dest)
Aggiunge un arco al grafo
|
Arc |
addArc(Node sorg,
Node dest,
double price)
Aggiunge un arco al grafo con un certo prezzo
|
Arc |
addArc(java.lang.String sorg,
java.lang.String dest)
Aggiunge un arco al grafo
|
Arc |
addArc(java.lang.String sorg,
java.lang.String dest,
double price)
Aggiunge un arco al grafo.
|
boolean |
addNode(java.lang.String name)
Aggiunge un nodo al grafo
|
Matrix |
adiacence()
Ritorna la matrice di adiacenza del grafo
|
boolean |
connected(java.lang.String[] path)
Dice se il percorso costituito dalla sequenza di nodi indicati esiste
|
Matrix |
connections()
Ritorna la matrice dei collegamenti del grafo
|
boolean |
coordOk(int i,
int j)
Controlla se i due indici dei nodi sono validi per il grafo
|
double |
costs(java.lang.String[] path)
Calcola il costo di un percorso costituito dalla sequenza di nodi indicati, se esiste
|
int |
degree()
Ritorna l'ordine del grafo
|
int |
findNode(Node node)
Ritorna l'indice di un nodo
|
int |
findNode(java.lang.String nn)
Ritorna l'indice di un nodo dato il nome
|
Arc |
getArc(int i,
int j)
Ritorna l'arco compreso da due nodi
|
Arc |
getArc(java.lang.String from,
java.lang.String to)
Ritorna l'arco compreso da due nodi
|
Node |
getNode(int i)
Ritorna il nodo dato l'indice
|
Node |
getNode(java.lang.String name)
Ritorna il nodo dato il nome
|
java.lang.String[] |
getNodes()
Ritorna la matrice dei nodi
|
boolean |
isConnected(java.lang.String from,
java.lang.String to)
Dice se due nodi sono connessi
|
void |
load(java.io.BufferedReader br)
Carica un Graph prelevando da un BufferedReader la descrizione di un grafo in due formati.
|
void |
load(java.io.BufferedReader br,
Graph og)
Carica un Graph prelevando da un BufferedReader la descrizione di un grafo in due formati.
|
void |
load(java.io.Reader r)
Carica un Graph prelevando da un Reader la descrizione di un grafo in due formati.
|
void |
load(java.io.Reader r,
Graph og)
Carica un Graph prelevando da un Reader la descrizione di un grafo in due formati.
|
static void |
main(java.lang.String[] ar)
Applicazione di prova.
|
java.lang.String[] |
minLengthPath(java.lang.String from,
java.lang.String to)
Ritorna la sequenze dei nomi dei nodi che sostituiscono il cammino di lunghezza minima tra due nodi
|
java.lang.String[] |
minPath(java.lang.String from,
java.lang.String to,
int type)
Ritorna la sequenze dei nomi dei nodi che sostituiscono il cammino minimo tra due nodi
|
java.lang.String[] |
minPricePath(java.lang.String from,
java.lang.String to)
Ritorna la sequenze dei nomi dei nodi che sostituiscono il cammino di prezzo minimo tra due nodi
|
boolean |
removeArc(Arc ar)
Cancella un arco dal grafo
|
boolean |
removeArc(java.lang.String from,
java.lang.String to)
Cancella gli archi che collegano due nodi del grafo
|
boolean |
removeNode(java.lang.String nome)
Rimuove un nodo dal grafo
|
boolean |
renameNode(java.lang.String name,
java.lang.String newName)
Cambia il nome di un nodo
|
void |
reset()
Azzera le matrici di adiacenza e delle connessioni
|
void |
save(java.io.Writer w)
+
Salva la matrice di adiacenza del grafo nel GraphPanel su un Writer in un formato che
prevede che la prima riga letta contenga il numero di nodi e la successiva � una riga vuota
e nelle righe successive sono conservati i valori della matrice di adiacenza
dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi
Successivamente c'� la matrice dei pesi
dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi
e gli elementi sono i valori dei singoli archi separati da '|'
|
void |
save(java.io.Writer w,
boolean labels)
+
Salva la matrice di adiacenza del grafo su un Writer in un formato che
prevede che eventualmente la prima riga scritta contenga il numero di nodi e la successiva
contiene l'elenco dei nomi dei nodi
e nelle righe successive sono conservati i valori della matrice di adiacenza
dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi
Successivamente c'e' la matrice dei pesi
dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi
e gli elementi sono i valori dei singoli archi separati da '|'
|
void |
saveMatrix(java.io.Writer w)
Salva la successione delle potenze della matrice
d'adiacenza del grafo e delle matrici delle connessioni
|
(package private) void |
setGraph(java.lang.String[][] couples,
double[] prices)
sostituisce il grafo rappresentato partendo dall’elenco delle coppie di nodi uniti da un arco.
|
(package private) void |
setGraph(java.lang.String[] name,
int[][] matAd)
Sostituisce il grafo rappresentato sostituendo la matrice dei nomi e la matrice di adiacenza
|
(package private) void |
setGraph(java.lang.String[] name,
int[][] matAd,
double[][][] prices)
Sostituisce il grafo rappresentato sostituendo la matrice dei nomi e le matrici di adiacenza e dei prezzi
|
java.lang.String |
toString()
Ritorna una stringa rappresentante il grafo come sua matrice di adiacenza.
|
Node[] n
Arc[][] a
Matrix conn
Matrix adiac
final int PRICE
final int LEN
public Graph()
public Graph(java.lang.String[] name, int[][] matAd)
name
- la matrice dei nomi dei nodimatAd
- la matrice di adiacenza del grafo in cui i le righe e le colonne hanno lo stesso ordine dei nomipublic Graph(java.lang.String[] name, int[][] matAd, double[][][] p)
name
- la matrice dei nomi dei nodimatAd
- la matrice di adiacenza del grafo in cui le righe e le colonne hanno lo stesso ordine dei nomip
- la matrice dei pesi del grafo in cui i le righe e le colonne hanno lo stesso ordine dei nomipublic Graph(java.lang.String[][] couples)
couples
- una matrice dove ogni riga è una coppia di nomi di nodi collegati tramite un arcopublic Graph(java.lang.String[][] couples, double[] prices)
couples
- una matrice dove ogni riga è una coppia di nomi di nodi collegati tramite un arcoprices
- una matrice dove ogni elemento è il costo del corrispondente arcopublic Graph(java.io.Reader r)
r
- il Reader da cui viene prelevato il grafopublic Graph(java.io.Reader r, Graph og)
r
- il Reader da cui viene prelevato il grafoog
- il grafo da includere, null se un grafo nuovopublic Graph(java.io.BufferedReader br)
br
- il BufferedReader da cui viene prelevato il grafopublic Graph(java.io.BufferedReader br, Graph og)
br
- il BufferedReader da cui viene prelevato il grafoog
- il grafo da includere, null se un grafo nuovopublic void load(java.io.Reader r)
r
- il Reader da cui viene prelevato il grafopublic void load(java.io.Reader r, Graph og)
r
- il Reader da cui viene prelevato il grafoog
- il grafo da includere, null se un grafo nuovopublic void load(java.io.BufferedReader br)
br
- il BufferedReader da cui viene prelevato il grafopublic void load(java.io.BufferedReader br, Graph og)
br
- il BufferedReader da cui viene prelevato il grafoog
- il grafo da includere, null se un grafo nuovopublic void save(java.io.Writer w)
w
- il Writer su cui viene salvato il grafopublic void save(java.io.Writer w, boolean labels)
w
- il Writer su cui viene salvato il grafolabels
- se true indica anche il numero di nodi e le etichette delle righe della matrice di adiacenza, altrimenti no.public void saveMatrix(java.io.Writer w)
w
- il Writer su cui viene salvato il grafovoid setGraph(java.lang.String[] name, int[][] matAd)
name
- la matrice dei nuovi nomi dei nodimatAd
- la nuova matrice di adiacenza del grafovoid setGraph(java.lang.String[] name, int[][] matAd, double[][][] prices)
name
- la matrice dei nuovi nomi dei nodimatAd
- la nuova matrice di adiacenza del grafoprices
- la nuova matrice dei pesi del grafovoid setGraph(java.lang.String[][] couples, double[] prices)
couples
- una matrice dove ogni riga è una coppia di nomi di nodi collegati tramite un arcoprices
- una matrice dove ogni elemento è il costo del corrispondente arcopublic boolean coordOk(int i, int j)
i
- la riga dell'arcoj
- la colonna dell'arcopublic Arc getArc(java.lang.String from, java.lang.String to)
from
- il nome del nodi di partenzato
- il nome del nodo di arrivopublic Arc getArc(int i, int j)
i
- l'indice del nodi di partenzaj
- l'indice del nodo di arrivopublic boolean removeArc(Arc ar)
ar
- l'arco da cancellarepublic boolean removeArc(java.lang.String from, java.lang.String to)
from
- in nome del nodo di partenzato
- in nome del nodo di arrivopublic Arc addArc(Arc arc)
arc
- l'arco da aggiungerepublic Arc addArc(Node sorg, Node dest)
sorg
- il nodo di partenzadest
- il nodo di destinazionepublic Arc addArc(Node sorg, Node dest, double price)
sorg
- il nodo di partenzadest
- il nodo di destinazioneprice
- il prezzo dell'arcopublic Arc addArc(java.lang.String sorg, java.lang.String dest)
sorg
- il nome del nodo di partenzadest
- il nome del nodo di destinazionepublic Arc addArc(java.lang.String sorg, java.lang.String dest, double price)
sorg
- il nome del nodo di partenzadest
- il nome del nodo di destinazioneprice
- il prezzo dell'arcopublic Node getNode(int i)
i
- l'indice del nodopublic Node getNode(java.lang.String name)
name
- il nome del nodopublic boolean renameNode(java.lang.String name, java.lang.String newName)
name
- il vecchio nome del nodonewName
- il nuovo nome del nodopublic boolean removeNode(java.lang.String nome)
nome
- il nome del nodopublic boolean addNode(java.lang.String name)
name
- il nome del nodopublic int findNode(java.lang.String nn)
nn
- il nome del nodopublic int findNode(Node node)
node
- il nodopublic java.lang.String[] getNodes()
public void reset()
public int degree()
public boolean isConnected(java.lang.String from, java.lang.String to)
from
- il nodo di partenzato
- il nodo di arrivopublic Matrix adiacence()
public Matrix connections()
public double costs(java.lang.String[] path)
path
- il percorso da verificarepublic boolean connected(java.lang.String[] path)
path
- il percorso da verificarepublic java.lang.String[] minLengthPath(java.lang.String from, java.lang.String to)
from
- il nodo di partenzato
- il nodo di arrivopublic java.lang.String[] minPricePath(java.lang.String from, java.lang.String to)
from
- il nodo di partenzato
- il nodo di arrivopublic java.lang.String[] minPath(java.lang.String from, java.lang.String to, int type)
from
- il nodo di partenzato
- il nodo di arrivotype
- se il valore e' PRICE viene effettuata la ricerca sul percorso di prezzo minimo, se il valore e' LEN viene effettuata la ricerca sul percorso pi� breve.public java.lang.String toString()
toString
in class java.lang.Object
public static void main(java.lang.String[] ar)
ar
- viene ignorato