Pilas
- Acceso limitado al último elemento insertado
- Operaciones básicas: apilar,desapilarycima.
- Cada operación debería tardar una cantidad constante de tiempo en ejecutarse.
- Con independencia del número de elementos apiladas.
Tipo Pila
Sección titulada «Tipo Pila»tipo Pila = registro    Cima_de_pila : 0..Tamaño_máximo_de_pila    Vector_de_pila : vector [1..Tamaño_máximo_de_pila] de Tipo_de_Elementofin registro#define TAMANO_MAXIMO_PILA 10typedef int tipo_elemento;
typedef struct {    int cima;    tipo_elemento vector[TAMANO_MAXIMO_PILA];} pila;Crear Pila ( P ) — O(1)
Sección titulada «Crear Pila ( P ) — O(1)»procedimiento Crear Pila ( P ) // O(1)    P.Cima_de_pila := 0fin procedimientovoid crear_pila(pila *p) {    p->cima = -1;}Pila Vacía ( P ) — O(1)
Sección titulada «Pila Vacía ( P ) — O(1)»función Pila Vacía ( P ) : test // O(1)    devolver P.Cima_de_pila = 0fin funciónint pila_vacia(pila p) {    return (p.cima == -1);}Apilar ( x, P ) — O(1)
Sección titulada «Apilar ( x, P ) — O(1)»procedimiento Apilar ( x, P ) // O(1)    si P.Cima_de_pila = Tamaño_máximo_de_pila entonces        error Pila llena    sino        P.Cima_de_pila := P.Cima_de_pila + 1;        P.Vector_de_pila[P.Cima_de_pila] := xfin procedimientovoid apilar(tipo_elemento x, pila *p) {    if (++p->cima == TAMANO_MAXIMO_PILA) {        printf("Error: pila llena\n");        exit(EXIT_FAILURE);    }    p->vector[p->cima] = x;}Cima ( P ) — O(1)
Sección titulada «Cima ( P ) — O(1)»función Cima ( P ) : Tipo_de_Elemento // O(1)    si Pila Vacía (P)  entonces error Pila vacía    sino devolver P.Vector_de_pila[P.Cima de Pila]fin funcióntipo_elemento cima(pila p) {    if (pila_vacia(p)) {        printf("Error: pila vacía\n");        exit(EXIT_FAILURE);    }    return p.vector[p.cima];}Desapilar ( P ) — O(1)
Sección titulada «Desapilar ( P ) — O(1)»función Desapilar ( P ) // O(1)    si Pila Vacía (P) entonces error Pila vacía    sino P.Cima_de_pila := P.Cima_de_pila - 1fin procedimientovoid desapilar(pila *p) {    if (pila_vacia(*p)) {        printf("Error: pila vacía\n");        exit(EXIT_FAILURE);    }    p->cima--;}   Pablo Portas López  © 2025 licensed under CC BY 4.0  