Package mx.unam.ciencias.edd
Class Grafica<T>
java.lang.Object
mx.unam.ciencias.edd.Grafica<T>
Clase para gráficas. Una gráfica es un conjunto de vértices y aristas, tales
que las aristas son un subconjunto del producto cruz de los vértices.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Agrega un nuevo elemento a la gráfica.void
bfs
(T elemento, AccionVerticeGrafica<T> accion) Realiza la acción recibida en todos los vértices de la gráfica, en el orden determinado por BFS, comenzando por el vértice correspondiente al elemento recibido.void
Conecta dos elementos de la gráfica.boolean
Nos dice si el elemento está contenido en la gráfica.void
desconecta
(T a, T b) Desconecta dos elementos de la gráfica.void
dfs
(T elemento, AccionVerticeGrafica<T> accion) Realiza la acción recibida en todos los vértices de la gráfica, en el orden determinado por DFS, comenzando por el vértice correspondiente al elemento recibido.void
Elimina un elemento de la gráfica.boolean
Nos dice si la gráfica es igual al objeto recibido.boolean
esConexa()
Nos dice si la gráfica es conexa.boolean
esVacia()
Nos dice si la gráfica es vacía.int
Regresa el número de aristas.int
Regresa el número de elementos en la gráfica.iterator()
Regresa un iterador para iterar la gráfica.void
limpia()
Limpia la gráfica de vértices y aristas, dejándola vacía.void
paraCadaVertice
(AccionVerticeGrafica<T> accion) Realiza la acción recibida en cada uno de los vértices de la gráfica, en el orden en que fueron agregados.void
setColor
(VerticeGrafica<T> vertice, Color color) Define el color del vértice recibido.boolean
sonVecinos
(T a, T b) Nos dice si dos elementos de la gráfica están conectados.toString()
Regresa una representación en cadena de la gráfica.Regresa el vértice correspondiente el elemento recibido.Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
Grafica
public Grafica()Constructor único.
-
-
Method Details
-
getElementos
public int getElementos()Regresa el número de elementos en la gráfica. El número de elementos es igual al número de vértices.- Specified by:
getElementos
in interfaceColeccion<T>
- Returns:
- el número de elementos en la gráfica.
-
getAristas
public int getAristas()Regresa el número de aristas.- Returns:
- el número de aristas.
-
agrega
Agrega un nuevo elemento a la gráfica.- Specified by:
agrega
in interfaceColeccion<T>
- Parameters:
elemento
- el elemento a agregar.- Throws:
IllegalArgumentException
- si el elemento ya había sido agregado a la gráfica.
-
conecta
Conecta dos elementos de la gráfica. Los elementos deben estar en la gráfica. El peso de la arista que conecte a los elementos será 1.- Parameters:
a
- el primer elemento a conectar.b
- el segundo elemento a conectar.- Throws:
NoSuchElementException
- si a o b no son elementos de la gráfica.IllegalArgumentException
- si a o b ya están conectados, o si a es igual a b.
-
desconecta
Desconecta dos elementos de la gráfica. Los elementos deben estar en la gráfica y estar conectados entre ellos.- Parameters:
a
- el primer elemento a desconectar.b
- el segundo elemento a desconectar.- Throws:
NoSuchElementException
- si a o b no son elementos de la gráfica.IllegalArgumentException
- si a o b no están conectados.
-
contiene
Nos dice si el elemento está contenido en la gráfica. -
elimina
Elimina un elemento de la gráfica. El elemento tiene que estar contenido en la gráfica.- Specified by:
elimina
in interfaceColeccion<T>
- Parameters:
elemento
- el elemento a eliminar.- Throws:
NoSuchElementException
- si el elemento no está contenido en la gráfica.
-
sonVecinos
Nos dice si dos elementos de la gráfica están conectados. Los elementos deben estar en la gráfica.- Parameters:
a
- el primer elemento.b
- el segundo elemento.- Returns:
true
si a y b son vecinos,false
en otro caso.- Throws:
NoSuchElementException
- si a o b no son elementos de la gráfica.
-
vertice
Regresa el vértice correspondiente el elemento recibido.- Parameters:
elemento
- el elemento del que queremos el vértice.- Returns:
- el vértice correspondiente el elemento recibido.
- Throws:
NoSuchElementException
- si elemento no es elemento de la gráfica.
-
setColor
Define el color del vértice recibido.- Parameters:
vertice
- el vértice al que queremos definirle el color.color
- el nuevo color del vértice.- Throws:
IllegalArgumentException
- si el vértice no es válido.
-
esConexa
public boolean esConexa()Nos dice si la gráfica es conexa.- Returns:
true
si la gráfica es conexa,false
en otro caso.
-
paraCadaVertice
Realiza la acción recibida en cada uno de los vértices de la gráfica, en el orden en que fueron agregados.- Parameters:
accion
- la acción a realizar.
-
bfs
Realiza la acción recibida en todos los vértices de la gráfica, en el orden determinado por BFS, comenzando por el vértice correspondiente al elemento recibido. Al terminar el método, todos los vértices tendrán colorColor.NINGUNO
.- Parameters:
elemento
- el elemento sobre cuyo vértice queremos comenzar el recorrido.accion
- la acción a realizar.- Throws:
NoSuchElementException
- si el elemento no está en la gráfica.
-
dfs
Realiza la acción recibida en todos los vértices de la gráfica, en el orden determinado por DFS, comenzando por el vértice correspondiente al elemento recibido. Al terminar el método, todos los vértices tendrán colorColor.NINGUNO
.- Parameters:
elemento
- el elemento sobre cuyo vértice queremos comenzar el recorrido.accion
- la acción a realizar.- Throws:
NoSuchElementException
- si el elemento no está en la gráfica.
-
esVacia
public boolean esVacia()Nos dice si la gráfica es vacía. -
limpia
public void limpia()Limpia la gráfica de vértices y aristas, dejándola vacía. -
toString
Regresa una representación en cadena de la gráfica. -
equals
Nos dice si la gráfica es igual al objeto recibido. -
iterator
Regresa un iterador para iterar la gráfica. La gráfica se itera en el orden en que fueron agregados sus elementos.
-