Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Implementación del TAD PILA

Creación del nodo de tipo pila

typedef struct TNodoPila
{
    TipoP info;
    struct TNodoPila *sig;
} TPila,*Pila;

Crea un pila vacía (sin elementos).

Pila inicPila(void)
{
    Pila stack = (Pila) malloc(sizeof(TPila));
    stack->sig = NULL;
    return stack;
}

Inserta un elemento a continuación del header

void adicPila(Pila stack,TipoP elem)
{
    Pila p = (Pila) malloc(sizeof(TPila));
    p->info = elem;
    p->sig = stack->sig;
    stack->sig = p;
}

Elimina el elemento que esta a continuación del header

void elimPila(Pila stack)
{
    Pila p = stack->sig;
    stack->sig = stack->sig->sig;
    free(p);
}

Retorna el campo inf del primer nodo de la pila, llamado comúnmente tope.

TipoP infoPila(Pila stack)
{
    return stack->sig->info; 
}

Informa si la pila tiene o no elementos

int vaciaPila(Pila stack)
{
    return stack->sig == NULL;
}

Libera memoria a toda la pila

void destruirPila(Pila stack)
{
    Pila p,q;
    for(p = stack; p != NULL; )
    {
        q = p;
        p = p->sig; 
        free(q);
    }
}