domingo, 4 de mayo de 2014

ESTRUCTURA DE DATOS: PILAS



ESTRUCTURA DE DATOS:


PILAS   La pila es una estructura de dato que cumple las condiciones usuales de añadir y quitar elementos.  Los elementos que se quitan son los del tope.
Además se conoce a las pilas como estructuras de datos LIFO que siginifica last-in, first-out en spanish es  "último en entrar, primero en salir".

Vemos el código en c++:



#include<iostream.h>
#include<conio.h>
#include<stdio.h> 

void main(void) 
{ 
      int cant,cont=0,op,n,k; 
      int a[50], i=-1; 
      int j=0; 
      int desap=0; 

      do { 

      clrscr(); 

      cout<<"INGRESE LA CANTIDAD DE ELEMENTOS PARA LA PILA: "; cin>>cant; 

      } while(cant<=0); 

      do{ 

      clrscr(); 
      cout<<"\n \n"; 
      cout<<"    MENU    \n \n"; 
      cout<<" 1. APILAR\n " 
      <<"2. DESAPILAR\n " 
      <<"3. VER PILA\n " 
      <<"4. VER EL TOPE\n " 
      <<"5. REINICIAR\n " 
      <<"6. SALIR\n \n" 
      <<" ELIJA UNA OPCION:  ";cin>>op; 


      switch(op) 
      { 

        case 1: 
                     cont=cant; 

                     if(i<cant-1) 
                     { 
                      clrscr(); 
                      i++; 
                      cout<<"APILAR "<<cant<<" ELEMENTOS:  \n \n"; 
                      cout<<"Ingrese elemento "<<"("<<i+1<<") : "; 
                      cin>>a[i]; 

                     } 

                  if(i==(cant-1)) 
                     { 

                     clrscr(); 


                     cout<<"    APILAR \n \n"; 
                     cout<<"LA PILA ESTA LLENA!"; 
                     getch(); 
                     } 
                     desap=i; 

                      //variable para quitar elementos a la pila 
                  break; 

          case 2:       //OPCION DE DESAPILAR 

                     clrscr(); 

                     cout<<"    DESAPILAR \n \n"; 

                     if (i>=0) 
                     { 
                        desap=desap-1; 

                     if(desap>=-1) 
                      { 
                          i--;
                          cout<<"Valor quitado: "<<a[desap+1]; 
                          cont--; 
                       } 

                     else if(desap<-1) 
                       {cout<<"La pila esta vacia";} 
                    } 


                   if(i==-1 && desap==0) 
                   { 
                     cout<<"La pila esta vacia"; 
                   } 


      getch(); 

break; 

             case 3:       //VER PILA COMPLETA 
              clrscr(); 

              cout<<"    VER PILA \n \n";

              if (i>=0) 
               { 
                 if(desap>=0) 
                  {
for(j=desap;j>=0;j--) 

{ 
     cout<<a[j]<<"\n"; 
 } 
} 

if(j<-1) 

 { 
   cout<<"La pila esta vacia"; 
} 
 } 

if(i<0 && desap==0) 
{ 
  cout<<"La pila esta vacia"; 
} 

   getch(); 
   break; 

  case 4:      //VER EL TOPE DE LA PILA 

    clrscr(); 
    cout<<"    VER EL TOPE \n \n"; 
    if(cont>0) 
    { 
      cout<<a[cont-1]; 
    } 
   else 
   { 
     cout<<"Pila vacia"; 
   } 
  getch(); 
  break; 


case 5:      //REINICIAR  PILA (VOLVER A 0 LA PILA) 

  clrscr(); 
  cout<<"    REINICIO DE PILA \n \n"; 

  i=-1;
  j=0; 
  desap=0; 
  cont=0; 

  do { 
    clrscr(); 
    cout<<"INGRESE LA CANTIDAD DE ELEMENTOS DE LA PILA: "; cin>>cant; 
  } while(cant<=0); 
     break; 
   } 
 }while(op<6); 
getch();
}
DESCARGA EL ARCHIVO CON EL CÓDIGO AQUÍ