Original Post
Hi, im making a linked list using a template node but im getting this weird undefined reference to the constructors when using my TNodo class in another class as an int. TNodo seems to be the one causing problems all around... anyone help? and
#include "TListaDoble.h"
#include "TNodo.h"
#include <iostream>
TListaDoble::TListaDoble()
{
Inicio = NULL;
Actual = Inicio;
}
bool TListaDoble::Vacio()
{
if(Inicio == NULL)
{
return true;
}
else
{
return false;
}
}
void TListaDoble::InsertarInicio(int var)
{
Inicio = new TNodo<int>(var);
Actual = Inicio;
}
void TListaDoble::InsertarFinal(int var)
{
if(Vacio())
{
Inicio = new TNodo<int>(var);
}
else
{
TNodo<int>* temp = new TNodo<int>(var);
TNodo<int>* aux = Inicio;
while(aux->siguiente != 0)
{
aux = aux->siguiente;
}
*aux->siguiente = *temp;
aux->siguiente->anterior = aux;
}
}
void TListaDoble::InsertarOrdenado(int var)
{
if(Vacio())
{
Inicio = new TNodo<int>(var);
Actual = Inicio;
}
else
{
TNodo<int>* aux = Inicio;
TNodo<int>* temp= new TNodo<int>(var);
while(aux->info < var)
{
aux = aux->siguiente;
}
temp->anterior = aux;
temp->siguiente = aux->siguiente;
aux->siguiente = new TNodo<int>(var);
aux->siguiente = temp->siguiente;
aux->anterior = temp->anterior;
}
}
void TListaDoble::Desplegar()
{
if(Vacio())
{
std::cout << "Lista Vacia" << std::endl;
}
else
{
TNodo<int>* aux = Inicio;
std::cout << "Lista: ";
while(aux != 0);
{
std::cout << aux->info << " " ;
}
std::cout << std::endl;
}
}
void TListaDoble::SacarInicio()
{
if(Vacio())
{
std::cout << "Lista Vacia" << std::endl;
}
else
{
Inicio = Inicio->siguiente;
Actual = Inicio;
}
}
void TListaDoble::SacarFinal()
{
if(Vacio())
{
std::cout << "Lista Vacia" << std::endl;
}
else
{
TNodo<int>* aux = Inicio;
while(aux->siguiente != 0)
{
aux = aux->siguiente;
}
aux = aux->anterior;
aux->siguiente = 0;
}
}
void TListaDoble::SacarOrdenado(int var)
{
if(Vacio())
{
std::cout << "Lista Vacia" << std::endl;
}
else
{
TNodo<int>* aux = Inicio;
while(aux->info != var | aux !=0)
{
aux = aux->siguiente;
}
if(aux = 0){ std::cout << "No existe numero " << var << " en la lista" << std:: endl;
}
aux->anterior->siguiente = aux->siguiente;
}
}
#ifndef H_TLISTADOBLE
#define H_TLISTADOBLE
#include "TNodo.h"
class TListaDoble
{
public:
TListaDoble();
bool Vacio();
void InsertarInicio(int);
void InsertarFinal(int);
void InsertarOrdenado(int);
void Desplegar();
void SacarInicio();
void SacarFinal();
void SacarOrdenado(int);
TNodo<int> *Inicio;
TNodo<int> *Actual;
};