Please enable JavaScript.
Coggle requires JavaScript to display documents.
TAD PILAS 1200px-Pila.svg - Coggle Diagram
TAD PILAS
Balanceo de paréntesis
- Verifica la corrección sintáctica de programas escritos en ese lenguaje.
- Una herramienta muy útil en esta situación sería un procedimiento que verifique.
Operaciones
- Top(cima), que retorna el elemento que se encuentra en el tope del stack;
- Pop(desapilar), remueve el elemento que se encuentra al tope (en la cima)
- La operación que construye un stack vacío, Empty(crearPila);
- IsEmpty(esVaciaPila), que testea si el stack es vacío o no;
- Push (apilar), que inserta un elemento en el tope del stack;
- IsFull (esLlenaPila), que testea si el stack está lleno.
- stack (destruirPila), liberando la memoria que éste ocupa.
Algunas Aplicaciones
- En el parsing de expresiones algebraicas y construcciones sintácticas (balanceo…).
- En la implementación de modelos de ejecución de llamados a procedimientos.
Flujo de control y puntos de retorno
- Si este subprograma a su vez invoca a otro, se repite este proceso.
- Cuando el subprograma invocado desea retornar el control se fija en el frame.
Invocación de Procedimientos y Funciones
- El algoritmo para chequear balance de símbolos sugiere una forma de implementar.
- Cuando se invoca a un subprograma la siguiente información debe ser guardada.
Stack de frames
- Valores de los registros correspondientes a variables del subprograma invocador;
- El lugar al que se transfiere el control una vez que el subprograma invocado termina de ejecutarse.
Pseudocódigo del algoritmo que chequea balanceo de símbolos
- Sino, si el tope del stack no es el correspondiente símbolo de apertura
- En el caso contrario, borre el tope del stack y siga inspeccionando la lista.
- Si el stack es vacío la expresión no es balanceada.
Aplicación
- Haciendo uso de un stack, resolver problemas de este tipo.
- Dada una lista de caracteres que sólo puede contener los elementos (, ), [, ], {y }.
Definición
- Un stack es una clase especial de lista en la que todas las inserciones y supresiones de elementos.
- LIFO(last-in-first-out) Última en entrar primero en salir.
Implementación con un vector de una Pila acotada de enteros en C/C++
-
-
-
-
-
-
-
-