Pilas en C++





//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

Entradas populares