¿QUE ES UNA ESTRUCTURA DE DATOS PILA?
Una pila es una estructura de datos en la que la inserción y la extracción de elementos se realiza solo por un extremo que se denomina cabeza. Como consecuencia, los elementos de una pila serán eliminados en orden inverso al que se insertaron. es decir, el ultimo elemento que se inserto en la pila sera el primero en salir de ella en ingles denominada (LIFO) Last Imput, First Output.
¿CUAL ES LA ESTRUCTURA DE UNA PILA?
- Tope
- Estructura de nodo PILA
- Variable puntero Aux
- Variable Dato
struct nodo \{
int dato;
struct nodo
*siguiente;
};
¿COMO FUNCIONA UNA PILA?
¿APLICACIONES DE LAS PILAS?
Reconocimiento del Lenguaje:
L={W$W´ / W es una cadena de caracteres y W´es su
inversa} (Suponemos que $ no está ni en W ni en W´)
Editor de líneas.
#: carácter de borradoIDEA: procesar una línea de texto usando una pila.
@: carácter de cancelación de línea
El código podría ser:
- Leer un carácter
- Si el carácter no es '#' ni '@' meterlo en la pila
- Si el carácter es '#' sacar de la pila
- Si el carácter es '@' vacia la pila
editar (void) {
pila p, q;
char c;
p = crear();
while ((c = (char)getchar()) != EOF) {
if (c == '#')
quitar(p);
else
if (c == '@') {
destruir(&p);
p = crear();
} else
poner(c, p);
};
q = crear();
while (!vacia(p)) {
poner(tope(p), q);
quitar(p);
};
while (!vacia(q)) {
printf("%c", tope(q));
quitar(q);
};
destruir(&q);
destruir(&p);
¿IMPLEMENTACION ALGORITMICA EN UNA PILA?
Algoritmo Lenguaje_L
Tipos
TipoElemento = $
Variables
TipoElemento c1, c2
CPila pila
B bien
Inicio
Leer(c1)
MIENTRAS (c1 != ‘$’) HACER
pila.Apilar(c1)
Leer(c1)
FINMIENTRAS
Leer(c1)
bien = VERDADERO
MIENTRAS (bien AND (c1 <> CHR(13))) HACER
¿IMPLEMENTACION DE UNA PILA EN LENGUAJE C++?
Un requisito típico de almacenamiento de una pila de n elementos es O(n). El requisito típico de tiempo de O(1) las operaciones también son fáciles de satisfacer con un array o con listas enlazadas simples.
La biblioteca de plantillas de C++ estándar proporciona una "pila" clase templated que se limita a sólo apilar/desapilar operaciones. Java contiene una biblioteca de la clase Pila que es una especialización de Vector. Esto podría ser considerado como un defecto, porque el diseño heredado get () de Vector método LIFO ignora la limitación de la Pila.
int dato;
struct _nodo *siguiente;
} tipoNodo;
typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;
Estructura de Datos Oswaldo Cairo