Proyecto final
IDEA DEL PROYECTO: CAFETERIA
Tema: Pilas, Colas y Listas simplemente ligadas
Aplicación: Sistema de pedidos en una cafetería
Idea:
En una cafetería, los pedidos se atienden en orden de llegada, pero a veces el último pedido urgente se atiende primero (por ejemplo, café rápido para llevar).
Aplicación en la empresa:
En una cafetería, no todos los pedidos se gestionan de la misma manera. Por esta razón, se implementan diferentes estructuras:
- Cola: Para pedidos normales, donde se respeta el orden de llegada de los clientes.
- Pila: Para pedidos urgentes, donde el último pedido debe atenderse primero.
- Lista ligada: Para guardar el historial de pedidos atendidos.
Esto permite simular un sistema real en el que se manejan prioridades y se almacena información de manera eficiente.

Funcionamiento del sistema
El sistema funciona combinando tres estructuras:
- La cola gestiona los pedidos normales respetando el orden de llegada.
- La pila permite atender pedidos urgentes de manera inmediata.
- La lista ligada almacena los pedidos que ya fueron atendidos.
Cuando un pedido es procesado, se elimina de la estructura correspondiente y se agrega al historial.
Implementación en Java:
Aqui abajo dejo el codigo para ejecutar:
Prueba de escritorio:
Esta prueba de escritorio muestra cómo interactúan las tres estructuras en un mismo sistema: la cola gestiona el orden de llegada, la pila prioriza urgencias y la lista ligada almacena el historial de pedidos atendidos.
Resultados de la implementacion:
- Se logró implementar correctamente las tres estructuras.
- Se simuló un sistema real de cafetería.
- Se validó el funcionamiento mediante pruebas de escritorio.
- Se demostró la utilidad de cada estructura.
Extra:
El uso de múltiples estructuras de datos permite resolver problemas de manera más eficiente. En este caso:
- Las colas permiten organizar procesos por orden.
- Las pilas permiten manejar prioridades.
- Las listas permiten almacenar información dinámica.
Esto demuestra que las estructuras de datos son herramientas fundamentales en el desarrollo de sistemas reales.