V2#

Punto 1: Representación de los Trabajos de Homero Simpson con un Árbol Binario#

En un grupo de 3 amigos, uno de ellos programador, recordaban y en listaban algunos de los trabajos que Homero Simpson había tenido. La lista crecio rápidamente y el amigo programador propuso el reto de adivinar uno de los trabajos, que uno de los del grupo pensara un trabajo y alguno de los otros dos lo adivinara por turnos. Para encontrar de forma más optima el trabajador, el programador utilizo la lógica de los árboles binarios para encontrarlo más fácilmente. Cada nodo del árbol representará un trabajo, y las relaciones estarán organizadas jerárquicamente según el nivel de importancia o la conexión entre ellos. La raíz del árbol será Homero y sus trabajos estarán distribuidos en el resto de los nodos.

Requerimientos#

1. Estructura del Árbol#

  • El nodo raíz será Homero Simpson.

  • Cada nodo hijo representará un trabajo que Homero ha tenido.

Cada nodo debe almacenar la siguiente información:

  • Nombre del trabajo.

  • Duración del trabajo (en años o meses).

  • Temporada. En que temporada salio, no tiene que ser un número correcto pero recuerden que van en la temporada 33.

Nota: Utiliza una clase para almacenar estos datos, no strings simples.

2. Trabajos de Homero**#

  1. Astronauta

  2. Boxeador

  3. Camionero

  4. Diseñador de autos

  5. Escritor

  6. Granjero

  7. Inspector de seguridad nuclear

  8. Jefe de sindicato

  9. Locutor de radio

  10. Pintor

  11. Rey del Carnaval

  12. Vendedor de azúcar

3. Operaciones a Implementar#

  • Agregar trabajos: Permite añadir nuevos trabajos al árbol, asegurando que se respete la estructura binaria.

  • Recorridos: Implementa los recorridos pre-order, in-order y post-order para listar los trabajos.

  • Contar trabajos: Devuelve el número total de trabajos en el árbol.

  • Trabajo con mayor duración: Encuentra el nodo con el trabajo que Homero desempeñó por más tiempo.

4. Escenario de Ejemplo#

Nodo raíz: Homero Simpson. Se deben incluir todos los trabajos mencionados según el orden en como están enlistados.

5. Entrega esperada#

  • Código funcional en Java: Implementación completa del árbol binario y las operaciones descritas.

  • Diagramas o imágenes: Representación visual del árbol, mostrando las relaciones entre los trabajos de Homero y sus niveles.

Solución#

// Agregar código aquí

Punto 2: Representar Centros Comerciales de Bogotá con un Grafo#

Dos guardias de seguridad de carros de valores deben recoger cantidades inmensas de dinero a algunos centros comerciales de Bogotá, aunque tienen una ruta no están seguros si es la mejor. Para resolver está duda, uno de los estudiantes de estructura de datos modelo este problema usando grafos donde cada centro comercial será un nodo, y cada conexión representará una relación entre ellos (por ejemplo, proximidad física o popularidad compartida). Además, agrega que realizar este modelado tiene una gran ventaja puesto que se podrá calcular una ruta optima donde se visiten todos los centros comerciales una sola vez.

Requerimientos#

1. Estructura del Grafo#

  • Cada nodo representa un centro comercial de Bogotá (por ejemplo, «Unicentro», «Titan Plaza», «Centro Mayor»).

  • Cada arista representa una conexión directa entre dos centros comerciales (proximidad o rutas frecuentes entre ellos).

  • El grafo será no ponderado.

Nota: Utiliza una clase para almacenar estos datos, no strings simples.

2. Operaciones a Implementar#

  • Recorridos: Implementa los algoritmos BFS y DFS para recorrer el grafo.

  • Agregar centro comercial: Añade un nuevo nodo al grafo.

  • Conectar centros comerciales: Crea una arista entre dos nodos existentes.

  • Buscar ruta: Determina si existe una ruta entre dos centros comerciales.

  • Listar conexiones: Dado un centro comercial, muestra todos los centros comerciales directamente conectados.

3. Escenario de Ejemplo#

Considera los siguientes centros comerciales y sus conexiones:

Para conocer el número del vértice basta contar click en el y ver el texto asociado.

4. Entrega esperada#

  • Código funcional en Java: Implementación completa del grafo y las operaciones descritas.

  • Diagramas o imágenes: Representación visual del grafo, destacando nodos (centros comerciales) y sus conexiones.

Solución#

// Agregar código aquí