Class Grafica<T>

java.lang.Object
mx.unam.ciencias.edd.Grafica<T>
All Implemented Interfaces:
Iterable<T>, Coleccion<T>

public class Grafica<T> extends Object implements Coleccion<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
    Constructor
    Description
    Constructor único.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    agrega(T elemento)
    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(T a, T b)
    Conecta dos elementos de la gráfica.
    boolean
    contiene(T elemento)
    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(T elemento)
    Elimina un elemento de la gráfica.
    boolean
    equals(Object objeto)
    Nos dice si la gráfica es igual al objeto recibido.
    boolean
    Nos dice si la gráfica es conexa.
    boolean
    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.
    Regresa un iterador para iterar la gráfica.
    void
    Limpia la gráfica de vértices y aristas, dejándola vacía.
    void
    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.
    Regresa una representación en cadena de la gráfica.
    vertice(T elemento)
    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 interface Coleccion<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

      public void agrega(T elemento)
      Agrega un nuevo elemento a la gráfica.
      Specified by:
      agrega in interface Coleccion<T>
      Parameters:
      elemento - el elemento a agregar.
      Throws:
      IllegalArgumentException - si el elemento ya había sido agregado a la gráfica.
    • conecta

      public void conecta(T a, T b)
      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

      public void desconecta(T a, T b)
      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

      public boolean contiene(T elemento)
      Nos dice si el elemento está contenido en la gráfica.
      Specified by:
      contiene in interface Coleccion<T>
      Parameters:
      elemento - el elemento que queremos verificar si está contenido en la colección.
      Returns:
      true si el elemento está contenido en la gráfica, false en otro caso.
    • elimina

      public void elimina(T elemento)
      Elimina un elemento de la gráfica. El elemento tiene que estar contenido en la gráfica.
      Specified by:
      elimina in interface Coleccion<T>
      Parameters:
      elemento - el elemento a eliminar.
      Throws:
      NoSuchElementException - si el elemento no está contenido en la gráfica.
    • sonVecinos

      public boolean sonVecinos(T a, T b)
      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

      public VerticeGrafica<T> vertice(T elemento)
      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

      public void setColor(VerticeGrafica<T> vertice, Color color)
      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

      public 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.
      Parameters:
      accion - la acción a realizar.
    • bfs

      public 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. Al terminar el método, todos los vértices tendrán color Color.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

      public 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. Al terminar el método, todos los vértices tendrán color Color.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.
      Specified by:
      esVacia in interface Coleccion<T>
      Returns:
      true si la gráfica es vacía, false en otro caso.
    • limpia

      public void limpia()
      Limpia la gráfica de vértices y aristas, dejándola vacía.
      Specified by:
      limpia in interface Coleccion<T>
    • toString

      public String toString()
      Regresa una representación en cadena de la gráfica.
      Overrides:
      toString in class Object
      Returns:
      una representación en cadena de la gráfica.
    • equals

      public boolean equals(Object objeto)
      Nos dice si la gráfica es igual al objeto recibido.
      Overrides:
      equals in class Object
      Parameters:
      objeto - el objeto con el que hay que comparar.
      Returns:
      true si la gráfica es igual al objeto recibido; false en otro caso.
    • iterator

      public Iterator<T> iterator()
      Regresa un iterador para iterar la gráfica. La gráfica se itera en el orden en que fueron agregados sus elementos.
      Specified by:
      iterator in interface Iterable<T>
      Returns:
      un iterador para iterar la gráfica.