Logo Studenta

TAREA 2 1 Pilas, Colas y Listas

¡Estudia con miles de materiales!

Vista previa del material en texto

Nombre del alumno: Antony Arturo García Pérez
Matrícula: 2020690020
Carrera: Licenciatura en Ciencia de Datos
Nombre de la materia: Algoritmos y Estructura de Datos
Nombre del docente: Carlos Basulto González
TAREA 2.1: Pilas, Colas y Listas
Sabinas, Coahuila							08/12/2020
Primero hay que definir lo que es una pila, una pila o stack en inglés es una lista ordenada o estructura de datos que permite almacenar y recuperar datos, siendo el modo de acceso a sus elementos de tipo LIFO (del inglés Last In, First Out, «último en entrar, primero en salir») . Esta estructura se aplica en multitud de supuestos en el área de informática debido a su simplicidad y capacidad de dar respuesta a numerosos procesos.
Para el manejo de los datos cuenta con dos operaciones básicas: apilar (push), que coloca un objeto en la pila, y su operación inversa, retirar (o desapilar, pop), que retira el último elemento apilado.
 
En cada momento solamente se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, Top of Stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al anterior (apilado con anterioridad), que pasa a ser el último, el nuevo TOS. 
Las pilas suelen emplearse en los siguientes contextos:
· Evaluación de expresiones en notación postfija (notación polaca inversa).
· Reconocedores sintácticos de lenguajes independientes del contexto.
· Implementación de recursividad.
Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar equivaldría a retirarlo.
En la vida cotidiana existen muchos ejemplos de pilas, una pila de platos en una alacena, una pila de latas en un supermercado, una pila de papeles sobre un escritorio, una pila de películas, de libros, de discos, pila de resultados parciales de fórmulas aritméticas, llamadas a subprogramas etc.
Pienso que es muy importante tener un buen conocimiento de este tipo de algoritmos, pues con este tenemos un mayor manejo y repertorio de conocimientos útiles a la hora de programar así nosotros tendremos en mente siempre cual deber de ser el algoritmo que sea más conveniente en cualquier aplicación que se nos presente

Continuar navegando