¡Bienvenido al Blog de Programación Estructurada!
PILAS en Java
Las pilas en java son una versión de una lista enlazada; estas listas pueden agregar y eliminar nuevos nodos en una pila solamente desde la parte superior.
A continuación un ejemplo gráfico:
Las pilas son aplicables en aplicaciones interesantes. Por ejemplo, en un programa que llama a un método que hizo la llamada se mete en la pila de ejecución del programa. Si se produce una serie de llamadas a métodos, las direcciones de retorno sucesivas se meten en una pila en el orden "último en enrtar, primero en salir", para que cada uno de los métodos puedan regresar a su invocador. Las pilas deberan soportar llamadas recursivas a métodos de la misma manera que para las llamadas no recursivas convencionales.
Creamos una clase llamada Nodo:
Creamos una clase llamada Pila:
Creación de los atributos de tipo Nodo y del constructor de la clase:
Los métodos quedarían de la siguiente manera:
La clase Principal quedaría de la siguiente manera:
Y como resultado tenemos lo siguiente:
Evaluación de Expresiones en Java
El evaluador consta de dos módulos, el primero se encarga de revisar que la expresión este bien digitada
y la traduce" a una expresión mas simple para que la computadora pueda entenderla".
En este caso, la expresión se pasara a notación postja, esta notación lo que hace es escribir el operador después de los números que opera; por ejemplo, una expresión como x + 1 el programa la traducirá como: "x1+".
El segundo módulo lo que hace es evaluar un valor dado en la expresión en notación postfija (ya sea la ultima que se digita o cualquier expresión en notación postja). Este módulo también tomara en cuenta cuando se evalúa en un valor en donde la expresión no tiene sentido en los números reales.
¡Si quieres este programa haz clic!
Colas en Java
Una cola es similar a la fila para pagar en un supermercado: el cajero atiende primero a la persona que se encuentra hasta adelante. Los demás clientes entran a la fila sólo por su parte final y esperan a que se les atienda.
En Java existe la clase PriorityQueue.
Implementa la interfaz Queue.
Se comporta como una cola de prioridad.
Usa compareTo, o un comparador, para ordenar los elementos por su prioridad.
Ejemplo:
Escribir una clase para controlar el acceso de clientes a un servicio con varios grados de urgencia.Se guardará una cola de espera de clientes, ordenados por prioridad.Cada cliente tiene un nombre, un número de móvil.Junto al cliente se guarda su urgencia.
Operaciones:
Añadir un cliente
Atender a un cliente
Mostrar el estado de las colas
Creamos la clase Urgencia:
Ruleta usando lista circular :
Click para Descargar ruleta..
Conclusión:
Aprendió que las estructuras de datos tipo pila y cola son versiones restringidas de listas. En cuanto
a las pilas, vio que las operaciones de insertar y eliminar datos se realizan sólo en la parte superior. En cuanto a
las colas que representan líneas de espera, vio que las inserciones se realizan en la parte fi nal (cola) y las eliminaciones
se realizan en la parte frontal (inicio).
Referencias:
Deitel, H. M., Deitel, P. J., & Santry, S. E. (2001). Advanced Java 2 platform How to program. Prentice Hall PTR.