elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda para crear Listas doblemente enlazadas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para crear Listas doblemente enlazadas  (Leído 2,207 veces)
kur79

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Ayuda para crear Listas doblemente enlazadas
« en: 25 Octubre 2014, 16:35 pm »

Buenas me encuentro con que tengo estos tres codigos que pongo a continuacion de lista, nodo e iterador, y estoy tratando que crear una lista doblemente enlazada con stl pero a la hora de crearla en el main me da problema ya que intento con diferente posibilidades y no me hacepta ninguna. A ver si me podían hechar una mano. Gracias

Código:
 template<class T>
class ListaDEnlazada {
    Nodo<T> *cabecera, *cola;
public:
    ListaDEnlazada() : cabecera(0), cola(0) {}
    ~ListaDEnlazada();
    ListaDEnlazada(const ListaDEnlazada &l);
    ListaDEnlazada &operator=(ListaDEnlazada &l);
    Iterador<T> iteradorInicio() { return Iterador<T>(cabecera); }
    Iterador<T> iteradorFinal() { return Iterador<T>(cola); }
    void insertarInicio(T &dato);
    void insertarFinal(T &dato);
    void insertar(Iterador<T> &i, T &dato);
    void borrarInicio();
    void borrarFinal();
    void borrar(Iterador<T> &i);
    T &inicio() { return cabecera->dato; }
    T &final() { return cola->dato; }
};

Código:
 #include "Nodo.h"

template<class Ta>
class Iterador {
Nodo<Ta> *nodo;
friend class ListaDEnlazada;
public:
Iterador(Nodo<Ta> *aNodo) : nodo(aNodo) {}
bool hayAnterior() { return nodo != 0; }
bool haySiguiente() { return nodo != 0; }
void anterior() { nodo = nodo->ant; }
void siguiente() { nodo = nodo->sig; }
Ta &dato() { return nodo->dato; }
};

Código:
#include <iostream>
using namespace std;

template<class T>
class Nodo {

public:
    T dato;
    Nodo *sig;
    Nodo(const T &aDato, Nodo *aSig = 0):   dato(aDato), sig(aSig) {}
    //~Nodo() {}
};



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines