Ejemplo De Pila En C, Estructura De Datos
#include
#include
#include
#include
#include
typedef struct pila *Dpila;
struct pila
{
int dato;Dpila tope;
};
void i_pila (Dpila *t_pila);
int pila_vacia (Dpila t_pila);
int push (Dpila *t_pila, int d);
int pop (Dpila *t_pila, int *d);
void desplegar_std_pila (Dpila t_pila, int d);int datos_en_pila (Dpila t_pila, int *d);
void desplegar_pila (Dpila t_pila);
void main()
{
int opc, res, dat;
Dpila t_pila;
i_pila(&t_pila);
do
{
clrscr();printf("\n\t---------------MENU----------------\n");
printf("\n\tInsertar en la pila (PUSH). [1]");
printf("\n\tEliminar dato de la pila (POP). [2]");
printf("\n\tMostrar dato de la pila.[3]");
printf("\n\tSalir. [4]");
desplegar_std_pila(t_pila, dat);
printf("\n\n\tOpci¢n: ");
scanf("%d",&opc);
switch(opc)
{
case 1:printf("\n\n\tIntrodusca el dato a insertar: ");
scanf("%d",&dat);
res=push(&t_pila,dat);
(res)? printf("\n\tEl dato %d insertado",dat):
printf("\nEl dato no pudo serinsertado");
getch();
break;
case 2:
res=pop(&t_pila, &dat);
(res)?
printf("\n\tEl dato %d fue eliminado del tope de la pila.",dat):
printf("\n\n\tEl dato nopudo ser eliminado.");
getch();
break;
case 3:
desplegar_pila(t_pila);
getch();
break;
case 4:
printf("\nTerminado...");
delay(500);
break;default:printf("\n\tOpcion no valida. rectifique.");
}
}
while(opc!=4);
}
void i_pila(Dpila *t_pila)
{
*t_pila=NULL;
}
int pila_vacia(Dpila t_pila)
{
return(t_pila==NULL);
}
int datos_en_pila(Dpila t_pila, int *d)
{
Dpila estado;
int to_datos=0;
if(pila_vacia(t_pila))
{
*d=0;
return 0;
}
else
{
estado=t_pila;
while(estado)...
Regístrate para leer el documento completo.