Documentos de Académico
Documentos de Profesional
Documentos de Cultura
enum {kEsNombre,kEsTelefono,kEsDireccion,kEsCorreo};
class Datos
{
public:
Datos(int);
~Datos() {}
Datos::Datos(int nom):miNombre(nom)
{}
else if(miNombre>losOtrosDatos.miNombre)
return kEsDireccion;
else
return kEsCorreo;
}
void Datos::Mostrar()
{
cout << miNombre << endl;
}
class Nodo
{
public:
Nodo() {};
Datos * misDatos;
Nodo * miSiguiente;
};
NodoInterno::~NodoInterno()
{
delete miSiguiente;
delete misDatos;
}
int resultado=misDatos->Comparar(*losDatos);
switch(resultado)
{
case kEsCorreo:
case kEsTelefono:
case kEsDireccion:
{
NodoInterno * nodoDatos=new
NodoInterno(losDatos,this);
return nodoDatos;
}
case kEsNombre:
miSiguiente=miSiguiente->Insertar(losDatos);
return this;
}
return this;
}
void NodoInterno::Mostrar()
{
misDatos->Mostrar();
miSiguiente->Mostrar();
}
public:
NodoCola() {}
~NodoCola() {}
NodoCabeza();
~NodoCabeza();
NodoCabeza::NodoCabeza()
{
miSiguiente=new NodoCola;
}
NodoCabeza::~NodoCabeza()
{
delete miSiguiente;
}
void NodoCabeza::Mostrar()
{
miSiguiente->Mostrar();
}
class ListaEnlazada
{
public:
ListaEnlazada();
~ListaEnlazada();
ListaEnlazada::ListaEnlazada()
{
miCabeza=new NodoCabeza;
}
ListaEnlazada::~ListaEnlazada()
{
delete miCabeza;
}
void ListaEnlazada::MostrarTodo()
{
miCabeza->Mostrar();
}
int main()
{
Datos * apDatos;
int nom;
ListaEnlazada le;
for(;;)
{
if(nom)
break;
apDatos=new Datos(nom);
le.Insertar(apDatos);
}
le.MostrarTodo();
return 0;
}