|
|||||||
|
|
|
|||||
|
|
|||||||
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);
}
}