lunes, 21 de octubre de 2013

cola con lista simple

colas.htm
/*
 
  Author:Carlos Marin Ramirez Garcia
  Date: 21/10/13 08:40
  Description: implementacion de una cola con
               una lista simple, usando las
               operciones basicas de una cola
               estaVacia(),agregar(dato),extraer(),
               mostrarprimero(),limpiar() que se
               implementa dentro del destructor.
*/

#include<iostream>
using namespace std;



class NodoP
{
      public:
             int dato;
             NodoP *sig;
             NodoP(int dato)
             {
               this->dato=dato;
               sig=NULL;
               }
};


class ColaP
{
      public:
             NodoP *primero;
             NodoP *ultimo;
             ColaP()
             {
                primero=NULL;
                ultimo=NULL;
                }
                
int estaVacia()
{
    return(primero==NULL && ultimo==NULL);
}   
void agregar(int dato)
{
  NodoP *nodo=new NodoP(dato);
  if(estaVacia())
     {
       primero=nodo;
       ultimo=nodo;
       }
       else
       {   ultimo->sig=nodo;
           ultimo=nodo;
           }
           }
int extraer()
{
  if(estaVacia())
  {
    cout<<"no hay datos"<<endl;
    return 0Xfffff;
    }
   else
   {
    NodoP *nodo;
    nodo=primero;
    primero=nodo->sig;
    if(primero==NULL)
    {
      ultimo=NULL;
      }
      return nodo->dato;
      delete nodo;
      }
      }
void imprimir()
{
     NodoP *nodo;
     nodo=primero;
     if(estaVacia())
     {
       cout<<"sin nodos"<<endl;
       }
       else
       {
       while(nodo!=NULL)
       {
       cout<<"nodo:"<<nodo->dato<<endl;
       nodo=nodo->sig;
      }
      }
      } 
int mostrarprimero()
{
    if(estaVacia())
    {
      cout<<"no hay nodo"<<endl;
      return 0Xffff;
      }
      else
      {
          return primero->dato;
          }
          }
void limpiar()
{
     NodoP *nodo,*prev;
     nodo=primero;
     while(nodo!=NULL)
     {
        prev=nodo->sig;
        delete nodo;
        nodo=prev;
        }
        primero=NULL;
        ultimo=NULL;
        }
~ColaP()
{
   limpiar();
}
};                               
main()
{
      int x;
      ColaP cola;
      cola.agregar(10);
      cola.agregar(11);
      cola.agregar(12);
      cola.agregar(13);
      cola.imprimir();
      x=cola.extraer();
      cout<<"elemto extraido: "<<x<<endl;
      x=cola.mostrarprimero();
      cout<<"el primer elemento es:"<<x<<endl;
      cola.imprimir();
      cola.~ColaP();
      cola.imprimir();
      cola.extraer();
      cola.agregar(10);
      x=cola.extraer();
      cout<<"elemto extraido: "<<x<<endl;
      cola.imprimir();
      system("pause");
      }
      








No hay comentarios:

Publicar un comentario