// clase PILA
  #include "punto.cpp"

  #define TPILA 100



  class PILA{  
  public: 
     Punto mipila[TPILA];   // Crea mi PILA de tamaņo TPILA 
     int apilados;        // Numero de objetos en LA PILA 
    void reset();         // Vacia LA PILA 
    void push(Punto p);     // Agrega Valores en el tope de la PILA 
     Punto pop();           // Retorna y elimina el tope de la PILA 
     void quitar();
     Punto top();
     int elementos();
  };
  
  
  void PILA::reset()        // Vacia la PILA 
  { 
    apilados=0;  
  }  
   
   
  //Se Agrega(PUSH) un valor en el tope de la pila 
  void PILA::push(Punto p)     
  { 
  // Comprueba que haya espacio dentro de la pila 
  // para poder agregar el nuevo valor 
    if(apilados<TPILA)       
       {                    
       mipila[apilados++]=p; 
       }  
  } 
    
    
  // Se Elimina (POP) el ultimo valor de la pila 
  // y retorna el nuevo tope 
  Punto PILA::pop() 
  {                          
    if(apilados>0)          
      { 
      
      // Retorna el valor del tope que fue eliminado 
      return(mipila[--apilados]); 
      } 
    else return (Punto());  
  } 
  
  
  void PILA::quitar()        // Elimina 1 elemento de la PILA 
  { 
    apilados--;  
  } 
  
  // Se Retorna (TOP) el ultimo valor de la pila 
  Punto PILA::top() 
  {                          
    if(apilados>0)          
      { 
      
      // Retorna el valor del tope
      return(mipila[apilados-1]); 
      } 
    else return (Punto());  
  } 
  
  // retorna el numero de elemento en la pila
  int PILA::elementos()        // Vacia la PILA 
  { 
    return apilados;  
  } 
  

