Package com.redes_sociales.controladores
Class ControladorGrafo
java.lang.Object
com.redes_sociales.controladores.ControladorGrafo
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 Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
agregarRelacion
(Usuario usuario1, Usuario usuario2, int tiempoAmistad) Agrega una relación al grafo.void
agregarUsuario
(Usuario usuario) Agrega un usuario al grafo.Realiza una búsqueda en anchura (BFS) en el grafo a partir de un usuario inicial.buscarUsuario
(int id) Busca un usuario en el grafo por su ID.int
Cuenta el número de islas en el grafo.Realiza una búsqueda en profundidad (DFS) en el grafo a partir de un usuario inicial.void
eliminarRelacion
(Usuario usuario1, Usuario usuario2) Elimina una relación del grafo.void
eliminarUsuario
(Usuario usuario) Elimina un usuario del grafo.getGrafo()
Obtiene el grafo que se está manejando.void
guardarCambios
(ControladorArchivo controladorArchivo) Guarda los cambios realizados en el grafo en el archivo original.Identifica los puentes en el grafo.obtenerRelaciones
(Usuario usuario) Obtiene las relaciones de un usuario.Obtiene los usuarios del grafo.
-
Constructor Details
-
ControladorGrafo
Constructor de la clase ControladorGrafo.- Parameters:
grafo
- el grafo que se va a manejar.
-
-
Method Details
-
getGrafo
Obtiene el grafo que se está manejando.- Returns:
- el grafo que se está manejando.
-
agregarUsuario
Agrega un usuario al grafo.- Parameters:
usuario
- el usuario a agregar.
-
eliminarUsuario
Elimina un usuario del grafo.- Parameters:
usuario
- el usuario a eliminar.
-
agregarRelacion
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
Elimina una relación del grafo.- Parameters:
usuario1
- el primer usuario de la relación.usuario2
- el segundo usuario de la relación.
-
obtenerUsuarios
Obtiene los usuarios del grafo.- Returns:
- una lista de usuarios del grafo.
-
obtenerRelaciones
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
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
Identifica los puentes en el grafo.- Returns:
- una lista de las relaciones que son puentes en el grafo.
-
guardarCambios
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
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
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.
-