Hola, estoy estudiando este interesante mundo de las pilas y colas.He hecho el siguiente programa que lee una secuencia de numeros y los devuelve al revés.
Adjunto el codigo en C para que me puedan decir si esta bien, en especial las funciones, gracias.
#include <stdio.h>
#define MAXPILA 5
typedef struct
{
int pilavector[MAXPILA];
int cimpila;
}Tpila;
void crear_pila(Tpila *pila)
{
pila->cimpila=-1;
}
int pila_vacia(Tpila pila)
{
if (pila.cimpila=-1)
{
return 1;
}
else
{
return 0;
}
}
int pila_llena(Tpila pila)
{
return (pila.cimpila==MAXPILA-1);
}
void pushpila(Tpila *pila, int n)
{
pila->pilavector [++pila->cimpila] = n;
}
int poppila(Tpila *pila)
{
return pila->pilavector[pila->cimpila];
pila->pilavector[--pila->cimpila];
}
void main ()
{
Tpila mi_pila;
int n;
crear_pila (&mi_pila);
printf ("Escribe el primer número de la secuencian");
scanf ("%d",&n);
while (n!=0)
{
if (!pila_llena (mi_pila))
pushpila (&mi_pila,n);
else
printf ("La pila ya está llenan");
printf ("Escribe el siguiente número de la secuencian");
scanf ("%d",&n);
}
printf("Ahora los números al revésn");
while (!pila_vacia (mi_pila))
{
poppila(&mi_pila);
printf ("%d",&n);
}
}