| Contacto | Chat | Foro |__
  
 
Principal Hoja de Vida Universidad Artículos Programas Descargas
 

Clase para manejo de pilas


PROG00017 - C/C++

La clase que se muestra a continuación, proporciona un método simple y eficiente para el manejo de pilas utilizando plantillas (templates). Se incluyen métodos para inicialización, ingreso de datos, extracción de datos y para vaciado de la pila.

template <class S>
class STACKNODE
{
   public:
   STACKNODE<S>* Next;
   S Data;

   STACKNODE(STACKNODE<S>* next,S data);
};

template <class S>
class STACK
{
   STACKNODE<S>* T;
   int N;

   public:
   STACK (void);
   void Push (S data);
   S Pop (void);
   S Top (void);
   int IsEmpty (void);
   void Flush (void);
};

template <class S>
STACKNODE<S>::STACKNODE(STACKNODE<S>* next,S data)
{
   Next= next;
   Data= data;
}

template <class S>
STACK<S>::STACK (void)
{
   T= 0;
   N= 0;
}

template <class S>
void STACK<S>::Push (S data)
{
   STACKNODE<S>* Tmp= new STACKNODE<S>(T,data);

   N++;
   T= Tmp;
}

template <class S>
S STACK<S>::Pop (void)
{
   STACKNODE<S>* Tmp;
   S data= 0;

   if (N>0)
   {
      Tmp = T;
      T = T->Next;
      data= Tmp->Data;
      delete Tmp;
      N--;
   }

   return (data);
}

template <class S>
S STACK<S>::Top (void)
{
   return(T->Data);
}

template <class S>
int STACK<S>::IsEmpty (void)
{
   return(N==0);
}

template <class S>
void STACK<S>::Flush (void)
{
   STACKNODE<S>* Tmp;

   while (N>0)
   {
      Tmp= T;
      T = T->Next;
      delete Tmp;
      N--;
   }
}

Advertencia
Aunque no he escatimado esfuerzos en cuanto a proveer aplicaciones e información confiable y veraz, sin embargo no puedo garantizar que esté totalmente libre de errores; por esa razón, no asumo responsabilidad alguna por las consecuencias que se deriven de su empleo.




7-Zip

Descarga Adobre Reader

Descargar programa
  Copyright 2005 | Ramón Medina | Todos los derechos reservados | Última Actualización: Agosto del 2008 | webmaster@ramonmedina.name