![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVv1ocogIwwH-_y5b4qJIe4l6F19TPjPfsInLx_LvCVl6c-yRk4zuiqaId5F5uH8nszsFQf6HHrgbuGRxyVJvZrV_CVuC-EZj13V0019_LsCnV8I3-ZylWrts-32zGqNMj4y90rYIoGtGd/s1600/imagesCALJ2LEW.jpg)
//PILAS
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#define max 5
typedef int tipodatopila;
tipodatopila pila[max];
int tope;
void visualizarpila(tipodatopila *pila);
void inicializarpila(int *tope);
void menu(int *tope, tipodatopila *pila);
int pilavacia(int *tope);
int pilallena(int *tope);
void push(int *tope, tipodatopila *pila, tipodatopila *dato);
void alta(int *tope);
tipodatopila pop(int *tope, tipodatopila *pila)
{
tipodatopila b=*(tope)+*(pila);
*(tope)=*(tope)-1;
return(b);
}
void baja(int *tope, tipodatopila *pila)
{
if(pilavacia(tope)==1)
{
gotoxy(40,4); cout<<"LA PILA ESTA VACIA";
}
else
{
gotoxy(40,4); cout<<"EL DATO ELIMINADO FUE "<<pop(tope,pila);
}
}
main()
{
menu(&tope,&pila[0]);
}
void menu(int *tope, tipodatopila *pila)
{
int op;
do
{
clrscr();
gotoxy(10,10); visualizarpila(pila);
gotoxy(30,2); cout<<"PILAS";
gotoxy(10,4); cout<<"1. INICIALIZAR PILA";
gotoxy(10,5); cout<<"2. ALTA";
gotoxy(10,6); cout<<"3. BAJA";
gotoxy(10,7); cout<<"4. SALIR";
gotoxy(10,8); cout<<"ELIGA UNA OPCION [ ]";
gotoxy(29,8); cin>>op;
switch(op)
{
case 1:
inicializarpila(tope);
break;
case 2:
alta(tope);
getch();
break;
case 3:
baja(tope,pila);
getch();
break;
case 4:
clrscr();
cout<<"ADIOS ;D";
getch;
break;
default:
cout<<"HAZ TECLADO UNA LETRA";
break;
}
}while(op!=4);
}
int pilallena(int *tope)
{
if(*(tope)==max-1)
{
return(1);
}
else
{
return(0);
}
}
//Pila vacia
int pilavacia(int *tope)
{
if(*(tope)==-1)
{
return(1);
}
else
{
return(0);
}
}
//Funcion inicializar pila
void inicializarpila(int *tope)
{
*(tope)=-1;
}
//Visualizar pila
void visualizarpila(tipodatopila *pila)
{
for(int f=0; f<max; f++)
{
cout<<"\n"<<*(pila+f);
}
}
void push(int *tope, tipodatopila *pila, tipodatopila *dato)
{
*(tope)=*(tope)+1;
*(pila+*tope)=*dato;
}
void alta(int *tope)
{
tipodatopila dato;
if(pilallena(tope)==1)
{
gotoxy(40,4); cout<<"LA PILA ESTA LLENA";
}
else
{
gotoxy(40,5); cout<<"INSERTE EL DATO "; cin>>dato;
gotoxy(40,6); push(tope,pila,&dato);
}
}
Comentarios
Publicar un comentario