ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Listas Enlazadas Genericas En C++


Enviado por   •  29 de Mayo de 2013  •  878 Palabras (4 Páginas)  •  1.103 Visitas

Página 1 de 4

#include <iostream>

using namespace std;

template <class Tipo>

class Nodo

{

public:

Tipo dato;

Nodo *siguiente;

public:

Nodo(Tipo dato,Nodo <Tipo> *sig = NULL)

{

this->dato=dato;

this->siguiente=sig;

}

~Nodo()

{

this->dato=0;

this->siguiente=NULL;

}

};

template <class Tipo>

class Lista

{

private:

Nodo <Tipo> *primero;

int tamanio;

public:

Lista()

{

primero = NULL;

tamanio = 0;

}

void insertarInicio(Tipo);

void insertarFinal(Tipo);

void insertar(Tipo,int);

void eliminar(Tipo);

void mostrar();

void buscar(Tipo);

};

template <class Tipo>

void Lista <Tipo> :: insertarInicio(Tipo elemento)

{

primero = new Nodo <Tipo> (elemento,primero);

tamanio++;

}

template <class Tipo>

void Lista <Tipo> :: insertarFinal(Tipo elemento)

{

Nodo <Tipo> *t;

Nodo <Tipo> *q = new Nodo <Tipo>(elemento,NULL);

if(primero==NULL)

{

primero = q;

tamanio++;

}

else

{

t = primero;

while(t->siguiente != NULL)

t = t->siguiente;

t->siguiente = q;

tamanio++;

}

}

template <class Tipo>

void Lista <Tipo> :: insertar(Tipo elemento, int posicion)

{

Nodo <Tipo> *t;

Nodo <Tipo> *q = new Nodo <Tipo> (elemento);

if(posicion == 1)

{

q->siguiente = primero;

primero = q;

}

else

{

t = primero;

for(int i=1;t!=NULL;i++)

{

if(i == posicion-1)

{

q->siguiente = t->siguiente;

t->siguiente = q;

return;

}

t = t->siguiente;

}

}

cout << "ERROR POSICION NO ENCONTRADA" <<endl;

}

template <class Tipo>

void Lista <Tipo> :: eliminar(Tipo elemento)

{

Nodo <Tipo> *p,*ant;

p = primero;

if(primero != NULL)

...

Descargar como (para miembros actualizados) txt (3 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com