Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct stPila
- {
- int dato;
- struct stPila* siguiente;
- } stPila;
- void inicPila(stPila* p);
- int pilavacia(stPila* p);
- int tope(stPila* p);
- void mostrar(stPila* p);
- void apilar(stPila* p, int elemento);
- int desapilar(stPila* p);
- void leer(stPila* p);
- int main()
- {
- int prueba;
- stPila pila;
- inicPila(&pila);
- prueba=pilavacia(&pila); ///deberìa retornar un 1
- printf("prueba antes de apilar: %d\n", prueba);
- system("pause");
- apilar(&pila, 5);
- prueba=pilavacia(&pila); ///deberia retornar un 0
- printf("prueba luego de apilar: %d\n", prueba);
- system("pause");
- printf("\nMostrando pila\n");
- mostrar(&pila);
- system("pause");
- leer(&pila);
- mostrar(&pila);
- return 0;
- }
- /// FUNCIONES PILA CON FILAS SIMPLES///
- void inicPila(stPila* p)
- {
- p = NULL;
- }
- int pilavacia(stPila* p)
- {
- int flag=20;
- if (p != NULL) {flag=0;}
- else if (p == NULL) {flag=1;}
- return flag;
- }
- int tope(stPila* p)
- {
- int tope = p->dato;
- return tope;
- }
- void mostrar(stPila* p)
- {
- stPila* aux = p;
- while (!pilavacia(&aux))
- {
- printf("//tope %d//", tope(&aux));
- aux=aux->siguiente;
- }
- }
- void apilar(stPila* p, int elemento)
- {
- int prueba=50;
- stPila* aux= (stPila*) malloc(sizeof(stPila));
- aux->dato=elemento; /** Hace falta modularizar la funcion "crear nodo"? traté de limitarme a las funciones de pila que trabajamos en el ingreso*/
- aux->siguiente=NULL; /** #"AlUsuarioNoLeImporta..."*/
- if (!pilavacia(&p))
- {
- aux->siguiente=p; ///hago el "enganche"
- }
- p = aux; ///fuera del if porque de cualquier modo lo voy a modificar
- printf("p->dato %d\n", p->dato);
- prueba=pilavacia(&p);
- printf("prueba dentro de apilar= %d", prueba);
- }
- int desapilar(stPila* p)
- {
- int desapile= tope(&p); ///me aseguro el retorno
- stPila* aux = p;
- p=p->siguiente; ///avanzo
- free(aux); ///libero el nodo
- return desapile;
- }
- void leer(stPila* p)
- {
- int elemento;
- printf("Ingrese un numero entero: ");
- scanf("%d", &elemento);
- apilar(&p, elemento);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement