Cola dinámica

Cidrex
20 de Febrero del 2006
Pues que no me sale la maldita cola dinámica. Os pongo los archivos pa que le echéis un ojo:

cola.h

#include<cassert>
template<class T>

class Cola{

private:
struct Nodo{

T info;
Nodo *sig;
};

unsigned int lon;

Nodo *Contenedor;

public:


Cola();
~Cola();
bool esVacia();
void insertar(T const&e);
void extraer();
T frente();
unsigned int longitud();


};

Y el cola.cpp

#include <cassert>
#include "cola.h"



template <class T>
Cola<T>::Cola() {

Contenedor = 0;
lon = 0;
frenteCola = 0;
finalCola = 0;

}

template <class T>

Cola<T>::~Cola() {

Nodo *borrado;
while (Contenedor != 0){
borrado = Contenedor;
Contenedor = Contenedor->sig;
delete borrado;
}
}


template <class T>

bool Cola<T>::esVacia() {

return (lon==0);
}

template <class T>
void Cola<T>::insertar(T const& e){

if (lon == 0){ //La cola estaba vacía

Nodo *nuevoNodo = new Nodo();
nuevoNodo->info = e;
nuevoNodo->sig = 0;
Contenedor = nuevoNodo;
frenteCola = 0;
finalCola = 0;
lon++;

} else {

Nodo *aux;
aux=Contenedor;

while (aux->sig!=0) {

aux = aux ->sig;

}


Nodo *nuevoNodo = new Nodo();
nuevoNodo->info = e;
nuevoNodo->sig = 0;
aux->sig=nuevoNodo;
lon++;

}

}


template <class T>
void Cola<T>::extraer(){


assert (lon!=0); //Cola vacía

bool encontrado = false;

Nodo *borrado;


if (lon == 1){

borrado = Contenedor;
Contenedor = Contenedor->sig;
delete borrado;


lon--;

} else {

borrado = Contenedor;
Contenedor = Contenedor->sig;
delete borrado;

lon--;


}
}



template <class T>

T Cola<T>::frente (){

assert(lon != 0); //Cola vacía
return Contenedor->info;
}

template <class T>

unsigned int Cola<T>::longitud(){

return lon;
}

Me da un error al compilar el CPP:

Compiling...
cola.cpp
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/Practica 2 EDI cola.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Practica 2 EDI cola.exe - 2 error(s), 0 warning(s)

Muchas Gracias por adelantado

Noel Solw
20 de Febrero del 2006
antes que nada : con que compilado estas trabajando ?