Class ControladorGrafo

java.lang.Object
com.redes_sociales.controladores.ControladorGrafo

public class ControladorGrafo extends Object
Esta clase se encarga de manejar las operaciones del grafo de la red social. Proporciona métodos para agregar y eliminar usuarios y relaciones, obtener usuarios y relaciones, contar islas, buscar usuarios, identificar puentes, guardar cambios y realizar búsquedas en profundidad y en anchura.
  • Constructor Details

    • ControladorGrafo

      public ControladorGrafo(Grafo grafo)
      Constructor de la clase ControladorGrafo.
      Parameters:
      grafo - el grafo que se va a manejar.
  • Method Details

    • getGrafo

      public Grafo getGrafo()
      Obtiene el grafo que se está manejando.
      Returns:
      el grafo que se está manejando.
    • agregarUsuario

      public void agregarUsuario(Usuario usuario)
      Agrega un usuario al grafo.
      Parameters:
      usuario - el usuario a agregar.
    • eliminarUsuario

      public void eliminarUsuario(Usuario usuario)
      Elimina un usuario del grafo.
      Parameters:
      usuario - el usuario a eliminar.
    • agregarRelacion

      public void agregarRelacion(Usuario usuario1, Usuario usuario2, int tiempoAmistad)
      Agrega una relación al grafo.
      Parameters:
      usuario1 - el primer usuario de la relación.
      usuario2 - el segundo usuario de la relación.
      tiempoAmistad - el tiempo de amistad entre los usuarios.
    • eliminarRelacion

      public void eliminarRelacion(Usuario usuario1, Usuario usuario2)
      Elimina una relación del grafo.
      Parameters:
      usuario1 - el primer usuario de la relación.
      usuario2 - el segundo usuario de la relación.
    • obtenerUsuarios

      public ListaEnlazada<Usuario> obtenerUsuarios()
      Obtiene los usuarios del grafo.
      Returns:
      una lista de usuarios del grafo.
    • obtenerRelaciones

      public ListaEnlazada<Relacion> obtenerRelaciones(Usuario usuario)
      Obtiene las relaciones de un usuario.
      Parameters:
      usuario - el usuario cuyas relaciones se van a obtener.
      Returns:
      una lista de relaciones del usuario.
    • contarIslas

      public int contarIslas()
      Cuenta el número de islas en el grafo.
      Returns:
      el número de islas en el grafo.
    • buscarUsuario

      public Usuario buscarUsuario(int id)
      Busca un usuario en el grafo por su ID.
      Parameters:
      id - el ID del usuario a buscar.
      Returns:
      el usuario si se encuentra, o null si no se encuentra.
    • identificarPuentes

      public ListaEnlazada<Relacion> identificarPuentes()
      Identifica los puentes en el grafo.
      Returns:
      una lista de las relaciones que son puentes en el grafo.
    • guardarCambios

      public void guardarCambios(ControladorArchivo controladorArchivo)
      Guarda los cambios realizados en el grafo en el archivo original.
      Parameters:
      controladorArchivo - el controlador de archivo que se utilizará para guardar los cambios.
    • bfs

      public ListaEnlazada<Usuario> bfs(Usuario inicio)
      Realiza una búsqueda en anchura (BFS) en el grafo a partir de un usuario inicial.
      Parameters:
      inicio - el usuario desde el cual comenzar la búsqueda.
      Returns:
      una lista de usuarios visitados durante la búsqueda.
    • dfs

      public ListaEnlazada<Usuario> dfs(Usuario inicio)
      Realiza una búsqueda en profundidad (DFS) en el grafo a partir de un usuario inicial.
      Parameters:
      inicio - el usuario desde el cual comenzar la búsqueda.
      Returns:
      una lista de usuarios visitados durante la búsqueda.