PILAS EN C++

ARCHIVO QUE CONTIENE LAS FUNCIONES DEL PAQUETE PILAS


/*********************************************************************************
*                            TAREA: FUNCIONES DEL PAQUETE PILAS                     *
*                            PROGRAMADOR: JULIO CESAR LEYVA RODRIGUEZ             *
*                            INSTITUTO TECNOLOGICO DE LOS MOCHIS                     *
*                            HTTP://SHALOM-NOW.BLOGSPOT.COM                         *
**********************************************************************************
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
# define MAX 5


//DECLARA UN ALIAS
typedef int tipodatopila;


//GENERA UNA ESTRUCTURA UN PAQUETE DE VARIABLES EN UNA SOLA
typedef struct tipopila
{
 tipodatopila *pila;
 int tope;
};


//ESTA FUNCION INICIALIZA LA PILA
void inicializarpila(tipopila *p)
{
 p->tope=-1;
}


//ESTA FUNCION INSERTA UN DATO EN LA PILA
void push(tipopila *p ,tipodatopila dato)
{
 (p->tope)=p->tope+1;

 *(p->pila+p->tope)=dato;
}


//ESTA FUNCION TE AVISA SI LA PILA ESTA LLENA
int pilallena(tipopila *p)
{
 if (p->tope==MAX-1)
  return(1);
 else
  return(0);
}

//ESTA FUNCION TE AVISA SI LA PILA ESTA VACIA
int pilavacia(tipopila *p)
{
 if (p->tope==-1)
  return(1);
 else
  return(0);
}

//ESTA FUNCION BORRA UN ELEMENTO DE LA PILA
tipodatopila pop(tipopila *p)
{
 tipodatopila dato;
 dato=*(p->pila+p->tope);
 (p->tope)--;
 return(dato);
}

//FUNCION QUE VISUALIZA LA PILA
void imprimepila(tipopila *p)
{
 int x;
 for (x=p->tope;x>-1;x--)
 {
   cout<<*(p->pila+x)<<"\n";
   getch();
 }
 getch();
}


//MENU
void menu(tipopila *tipopila)
{
int op;
do
     {                           
     clrscr();
         imprimepila(tipopila);
     gotoxy(10,1);    cout<<"                  MENU";
     gotoxy(10,2);    cout<<"1. INICIALIZAR";
     gotoxy(10,3);    cout<<"2. ALTA";
     gotoxy(10,4);    cout<<"3. BAJA";
     gotoxy(10,5);    cout<<"4. VISUALIZAR";
     gotoxy(10,6);    cout<<"5. SALIR";
     gotoxy(10,7);    cout<<"    ELIJA UNA OPCION [   ]";
     gotoxy(36,7);    cin>>op;
     switch(op)
        {
        case 1:
            inicializarpila(pilita);
            getch();
                        break;
                }
     }
     while(op!=5);
}



void main()
{
tipodatopila pila[MAX];

tipopila pilita;
pilita.pila=&pila[0];
menu(&pilita);
}


0