Parecia que funcionaba bien, pero ahora veo que si elimo el primer nodo, me peta aqui :
Código:
if(Anterior->DNSseguent==UltimNode)
Código:
void eliminarNode(char dominio[20])
{
int trobat=0;
NodeDNS *Aux1;
NodeDNS *Anterior;
Aux1=PrimerNode;
while (Aux1!=NULL && trobat==0)
{
if(strcmp(Aux1->nombre,dominio)==0)//Hemos encontrado el elemento a eliminar
{
trobat=1;
if(PrimerNode==UltimNode)//Solament hi ha un element a la llista
{
free(Aux1);
PrimerNode=NULL;
UltimNode=NULL;
}
if(Anterior->DNSseguent==UltimNode) //Queremos elimiar el ultimo elemento de la cola
{
UltimNode=Anterior;
UltimNode->DNSseguent = NULL;
printf("Ultim node ara es %s",UltimNode->nombre);
printf("\nEl primer node ara es %s",PrimerNode->nombre);
free(Aux1);
}
else //Eliminamos un elemento intermedio
{
Anterior->DNSseguent=Aux1->DNSseguent;
free(Aux1);
}
}
else
{
Anterior=Aux1;
Aux1=Aux1->DNSseguent;
}
}
}
Tambien creo que la parte de eliminar el nodo si solo hay un elemento tendria que cambiarla, ya que creo que podria agrupar esta opcion junto con eliminar el primer nodo de la lista, se el ultimo o no.