Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct nodo {
- int info;
- struct nodo *sig;
- } TNodo;
- typedef struct {
- TNodo *top;
- } TPila;
- void Pila_crear(TPila**);
- void Pila_push(TPila**, int);
- void Pila_pop(TPila**);
- int Pila_top(TPila*);
- int Pila_estaVacia(TPila *);
- void Pila_finalizar(TPila **);
- void Pila_crear(TPila **pila){
- TPila * pil;
- pil= (TPila*)malloc(sizeof(TPila));
- pil->top = NULL;
- *pila=pil;
- }
- void Pila_push(TPila **pila, int valor){
- TNodo * ptr_nuevoElem;TPila *pil=*pila;
- ptr_nuevoElem = (TNodo*)malloc(sizeof(TNodo));
- if (ptr_nuevoElem){
- ptr_nuevoElem->info = valor;
- ptr_nuevoElem->sig = pil->top;
- pil->top = ptr_nuevoElem;
- *pila=pil;
- }
- }
- int Pila_top( TPila*pila){
- return (pila->top->info);
- }
- void Pila_pop(TPila** pila){
- TPila* pil;TNodo *p;
- pil=*pila;
- if (pil!=NULL){
- p=pil->top;
- pil->top= pil->top->sig;
- free(p);
- *pila=pil;
- }
- }
- int Pila_estaVacia(TPila* pila){
- if (pila!=NULL) return 0;
- else return 1;
- }
- void Pila_finalizar(TPila** pila){
- TPila * pil=*pila;TNodo *p;
- if (pil!=NULL){
- while (pil->top!=NULL){
- p=pil->top;
- pil->top=pil->top->sig;
- free(p);
- }
- *pila=pil;
- }
- }
- int main(int argc, char** argv) {
- TPila *pila;int cima;
- Pila_crear(&pila);
- Pila_push(&pila,7);
- cima= Pila_top(pila);
- Pila_push(&pila,8);
- Pila_push(&pila,9);
- Pila_pop(&pila);
- cima= Pila_top(pila);
- int valido= Pila_estaVacia(pila);
- // if (valido) printf("Esta vacia");
- //else printf("No esta vacia");
- printf("%d\n",cima);
- Pila_finalizar(&pila);
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement