Pilas Encontrdas en lenguaje C

Pilas Encontradas en C




#include stdio.h
#include stdlib.h
#include string.h
#include ctype.h
 
#define MAX 10 

typedef struct{
int tope;
int tp2;
int elemnto[MAX];
}struct_pila;


int pop(struct_pila *pil1);
void push(struct_pila *pil1,int); 
int pop2(struct_pila *pil1);
void push2(struct_pila *pil1,int); 
int validar(struct_pila *pil1);

int main(){
int q,g,e,v;
int opc;
struct_pila p;
p.tope=-1;
p.tp2=MAX+1;
while(q!=2){
system("cls"); 
printf("Practica pila \n");
printf("1.- Insertar elementos en la pila \n");
printf("2.- Sacar un elemento de la pila \n");
printf("3.- Insertar elementos al final de la pila \n");
printf("4.- Sacar un elemento del final de la pila \n");
printf("5.- Mostrar la pila \n");
printf("9.- Salir \n");
printf("Indica la opcion: ");
scanf("%d", &opc);
switch(opc)
{
case 1:system("cls");
v=validar(&p);
if(v==1){
printf("Ingresa el numero que deseas meter a la pila: ");
scanf("%d",&e);
push(&p,e);
} else{ printf("No se puede insertar o los datos serian sobreescritos \n");
}
break;
case 2:system("cls");
pop(&p);
break;
case 3:system("cls");
v=validar(&p);
if(v==1){
printf("Ingresa el numero que deseas meter a la pila: ");
scanf("%d",&e);
push2(&p,e);
} else{ printf("No se puede insertar o los datos serian sobreescritos \n");
}
break;
case 4:system("cls"); 
pop(&p);
break;
case 5:system("cls");
mostrar(p);
break;
case 9:return 0;
break;
default :
printf("Opcion no valida\n" );
break;
}
printf("\n¿Desea hacer otro movimiento?\n");
printf("1.-si\n");
printf("2.-no\n\n");
printf("Opcion:");
scanf("%d",&q);
}
}


int pop(struct_pila *p){
int f=-1,val;
if(p->tope==f){
printf("La pila esta Vacia\n");
}
val=p->elemnto[p->tope];
p->tope--;
return val;
}

void push(struct_pila *p,int e){
if(p->topetope++;
p->elemnto[p->tope]=e;
printf("\n el numero %d se ingreso con exito\n",e);
}
else{
printf("\nNo queda espacio en la pila \n");
}
}

int pop2(struct_pila *p){
int f,val;
f=MAX+1;
if(p->tp2==f){
printf("No existen elementos \n");
return 0;
}
val=p->elemnto[p->tp2];
p->tp2++;
return val;
}

void push2(struct_pila *p,int e){
int r;
r=MAX+1;
if(p->tp2<=r){
p->tp2--;
p->elemnto[p->tp2]=e;
printf("\n el numero %d se ingreso con exito\n",e);
}
else{
printf("\nNo queda espacio en la pila \n");
}
}


void mostrar(struct_pila p){
int i,g;
int f=-1;
g=p.tope+1;
if (p.tope==f)
printf("La pila esta vacia.\n\n");
else
{
printf("En la pila se encuentrar:\n\n");
printf("%d/10 Elementos \n",g);
printf("_______________________________________________________________\n\n");
while (p.tope!=f) 
{
printf(" <-- d="" f="p-" i="" int="" n="" n_______________________________________________________________="" p.elemnto="" p.tope--="" p.tope="" p="" printf="" struct_pila="" v="" validar="">tp2;
i=p->tope;
v=i+1;
if(v==f){
return 0;
}
return 1;
}

Share on Google Plus
    Blogger Comment

0 comentarios:

Publicar un comentario