Cola dinámica
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
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