Colas con clases y estructuras
author icon Escrito por Henry | Imprimir Correo electrónico
Valoración de los usuarios: / 4
PobreEl mejor 

 

 CÓDIGO FUENTE - Colas en C++ (con clases y estructuras)


/* Esta cola trabaja con estructuras, para crear nodos, que luego serán los componentes de la cola final, se redefinen con typedef para facilitar su uso, esta clase tiene los métodos esenciales para el manejo de colas */

struct nodocola
{
 int dato;
 nodocola *dir;
};

typedef nodocola *pnodo;

class cola
{
private:
 pnodo pfren,pfin;
public:
 cola();
 ~cola();
 void imprimir();
 int desencolar();
 void encolar(int x);
};

cola::cola()
{
 pfren=NULL;
 pfin=NULL;
}

cola::~cola()
{
 pnodo p,q;
 if(pfren!=NULL)
 {
  p=pfren;
  while(p!=NULL)
  {
   q=p;
   p=(*p).dir;
   delete q;
  }
  pfren=NULL;
  pfin=NULL;
 }
}

void cola::encolar(int x)
{
 pnodo p;
 p=new nodocola;
 (*p).dato=x;
 (*p).dir=NULL;
 if(pfren==NULL)
  pfren=p;
 else
  (*pfin).dir=p;
 pfin=p;
}

int cola::desencolar()
{
 int k;
 pnodo p;
 if(pfren==NULL)
  cout<<"Lista vacia"<<endl;
 else
 {
  p=pfren;
  k=(*pfren).dato;
  pfren=(*pfren).dir;
  delete p;
  return k;
 } 
}

void cola::imprimir()
{
 pnodo p;
 p=pfren;
 while(p!=NULL)
 {
  cout<<(*p).dato<<" -> ";
  p=(*p).dir;
 }
 cout<<"NULL"<<endl;
}

 COMENTARIOS
  • Se recomienda implementar esta clase en un archivo de cabecera ('header'), para declararlo luego en el programa principal, y crear objetos de la clase cola.
  • El límite de nodos de la clase cola, estará determinado por la memoria del computador (que supongo en todos los casos, supera largamente lo necesitado)
  • La lógica de las colas es FIFO (first in - first out), a diferencia de las pilas cuya se cuencia es LIFO (last in - last out).
  • Cualquier duda o consulta que tengas, escribeme Esta dirección electrónica esta protegida contra spambots. Es necesario activar Javascript para visualizarla .
 

 

 

Última actualización el Jueves 07 de Septiembre de 2006 21:43