/*
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");
}
lunes, 21 de octubre de 2013
cola con lista simple
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario