C/Traballar con listas encadeadas: Diferenzas entre revisións

Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
m Corrixo o nome dunha función (con razón non funcionaba o código, un a chamaba Fulana e outro Mengana)
Gallaecio (conversa | contribucións)
Simplificáronse as funcións.
Liña 71:
}
 
novo->dato = dato; // Métese o dato no elemento reservado para o mesmo.
if(anterior == NULL) // Se a lista está baleira...
novo->seguinte = lista; // Punteiro ao seguinte elemento, ou a nada se é o último elemento.
{
 
novo->dato = dato; // Métese o dato no elemento reservado para o mesmo.
if(anterior == NULL) // Se a lista estáestaba baleira...
novo->seguinte = lista; // Só haberá un elemento, o punteiro ao seguinte elemento será “lista”, nulo.
*punteiro = novo; // O punteiro á lista apunta ao elemento, dado que é o único da lista.
}
else
{
novo->dato = dato; // Métese o dato no elemento reservado para o mesmo.
novo->seguinte = lista; // Punteiro ao seguinte elemento, ou a nada se é o último elemento.
anterior->seguinte = novo;
}
 
return 0; // Saída correcta da función.
Liña 112 ⟶ 107:
{
*punteiro = lista->seguinte;
free(lista);
}
else // En caso de ser calquera outro elemento...
{
anterior->seguinte = lista->seguinte;
free(lista);
}
 
free(lista); // Libérase a memoria almacenada en “lista”, que contén o elemento a borrar.
}
else // Se non se atopou o dato...