Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct tpila
- {
- int clave;
- struct tpila *sig;
- };
- //- Procedimiento de creación:
- void crear(struct tpila **pila)
- {
- *pila = (struct tpila *) malloc(sizeof(struct tpila));
- (*pila)->sig = NULL;
- }
- //- Función que devuelve verdadero si la pila está vacía:
- int vacia(struct tpila *pila)
- {
- return (pila->sig == NULL);
- }
- //- Procedimiento de apilado (apila al comienzo de la lista):
- void apilar(struct tpila *pila, int elem)
- {
- struct tpila *nuevo;
- nuevo = (struct tpila *) malloc(sizeof(struct tpila));
- nuevo->clave = elem;
- nuevo->sig = pila->sig;
- pila->sig = nuevo;
- }
- //- Procedimiento de desapilado (desapila del comienzo de la lista):
- void desapilar(struct tpila *pila)
- {
- struct tpila *aux;
- aux = pila->sig;
- pila->sig = aux->sig;
- free(aux);
- }
- int main()
- {
- struct tpila *pila;
- int elem;
- crear(&pila);
- //if (vacia(pila)) printf("\nPila vacia!\n");
- apilar(pila, 1);
- apilar(pila, 6);
- apilar(pila, 9);
- printf("%d\n",(*((*pila).sig)).clave);
- apilar(pila, 24);
- desapilar(pila);
- printf("%d\n",(pila->sig)->clave);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement