90 likes | 286 Views
UNIDAD IV. PILAS, COLAS, RECURSION APLICADAS A LENGUAJE C. Docente: Yesika Medina Algoritmos , Estructuras y Programación II.
E N D
UNIDAD IV. PILAS, COLAS, RECURSION APLICADAS A LENGUAJE C. Docente: Yesika Medina Algoritmos , Estructuras y Programación II.
Las estructuras de datos pilas y colas queson probablemente las utilizadas mas frecuentemente en los programas más usuales. Son estructuras de datos que almacenan y recuperan sus elementos atendiendo a un estricto orden. Las pilas se conocen también como estructuras LIFO (Last-in, first-out, último en entrar-primero en salir) y las colas como estructuras FIFO (nirSt-in, First-out, primero en entrar-primero en salir). Entre las numerosas aplicaciones de las pilas destaca la evaluación de expresiones algebraicas, así como la organización de la memoria. Las colas tienen numerosas aplicaciones en el mundo de la computación: colas de mensajes, colas de tareas a realizar por una impresora, colas de prioridades.
OPERACONES CON PILA. La operación Insertar (push) añade un elemento en la cima de la pila . La operación Quitar (pop) elimina o saca un elemento de la pila. La Figura 15.3 muestra una secuencia de operaciones Insertar y Quitar. El último elemento añadido a la pila es el primero que se quita de la Novela Enciclopedia Diccionario Figura 15.1. Pila de libros.
La declaración de una pila incluye los datos y operaciones ya citados anteriormente. • 1. Datos de la pila (tipo Ti pouat-a, que es conveniente definirlo mediante typedef). • 2. Verificar que la pila no está llena antes de intentar insertar o poner (<<push»u)n elemento en la • pila ; verificar que una pila no está vacía antes de intentar quitar sacar (qmp~u)n elemento de • la pila. Si estas precondiciones no se cumplen se debe visualizar un mensaje de error y el • programa debe terminar. • 3. r' i 1 =ivac fa devuelve I (verdadero) si la pila está vacía y O (falso) en caso contrario. • 4. Piidllcnd devuelve 1 (verdadero) si la pila está llena y O (falso) en caso contrario. Estas • 5. L, i m p i a r'i ~1 a . Se lirnpiao vacía la pila, dejándola sin elementos y disponible para otras tareas. • 6. ~irn~d,e~vu,elve el valor situado en la cima de la pila, pero no se decrernenta el puntero de la • funciones se utilizan para verificar las operaciones del párrafo 2. • pila, ya que la pila queda intacta.
Insertar (push) • 1.verificar si la pila no está llena. • 2.Incrementar en 1 el puntero de la pila. • ?.Almacenar elemento en la posición del puntero de la pila. Quitar (pop) • 1.si la pila no está vacía. • 2.Leer el elemento de la posición del puntero de la pila. • 3.Decrementar en 1 el puntero de la pila.
Las operaciones de la pila definidas en la especificación se implementan en el archivo PILAARRAY.Cpara después formar un proyecto con otros módulos y la función principal. / * ARCHIVO PILAARRAY.C* / #include «pilaarray.h" / * Inicializa la pila vacia* / void CrearPila(Pila* P) p -> cima = -1;
COLAS. Una cola es una estructura de datos que almacena elementos en una lista y permite acceder a los datos por uno de los dos extremos de la . Un elemento se inserta en la cola (parte final) de la lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista. Las aplicaciones utilizan una cola para almacenar elementos en su orden de aparición o concurrencia
OPERACIONES CON COLA. Acciones que están permitidas en una cola son: • Creación de una cola vacía. • Verificación de que una cola estd vacía. • Añadir un dato al final de una cola. • Eliminación de los datos de la cabeza de la cola.