Código:
void Lista<T>::eliminarId(string id){
Nodo<T>* aux1;
Nodo<T>* temp;
Nodo<T>* actual=primerNodo;
Nodo<T>* ante=primerNodo;
Nodo<T>* sigue=primerNodo->obtenerSiguiente();
Iterador<T>* i = obtenerIterador();
T* tmp = i->proximoElemento();
if (actual ==NULL)
{
cout << "La lista esta vacia"<<endl;
}
if ( tmp->getId()==id && primerNodo->obtenerSiguiente()== NULL)
{
primerNodo=NULL;}
/////////////////////////////////////////////////////////////////////////////////////
//En caso de ser el primero de una lista de varios elementos
if ( tmp->getId()==id && primerNodo->obtenerSiguiente()!= primerNodo )
{
primerNodo=primerNodo->obtenerSiguiente();
actual=NULL;
}
else{actual = actual->obtenerSiguiente();
sigue=primerNodo->obtenerSiguiente();
while(actual !=NULL)
{
if(tmp->getId()==id)
{aux1=ante->obtenerSiguiente(); aux1=sigue;actual=NULL; }
tmp = i->proximoElemento();
actual = actual->obtenerSiguiente();
primerNodo = primerNodo->obtenerSiguiente();
sigue = sigue->obtenerSiguiente();
ante = ante->obtenerSiguiente();
}
}
}
TENGO ESE COD PARA ELIMINAR UNA PLANTILLA PERO SOLO ELIMINA SI ES PRIMERO Y SI ES EL DEL MEDIO O ASI NO HACE NADA Y SI ES EL ULTIMO BORRA TODO MENOS EL ULTIMO... EL ERROR ES EN EL PUNTERO PERO NO SE COMO ARREGLARLO