Jak zrobić, żeby program usunął wszystkie elementy z listy o wartości np. 1? (Wypełniając listę pięcioma elementami o wartościach np. 1, 1, 3, 5, 10)?
Aktualnie program usuwa pierwszy napotkany element o wartości wskazanej do usunięcia... Zostaje 1, 3, 5, 10 zamiast 3, 5, 10. Wkleję tylko funkcję usun_element, żeby nie zajęło to dużo miejsca.
PS: Dodałem pętlę for(a=5; a!=0; a--){...} w pewnym miejscu, ale nadal nie działa to tak, jak powinno.
struct Lista *usun_element(struct Lista *q, int x){
struct Lista *pom, *tmp, *spr;
int a;
pom = q;
for(a=5; a!=0; a--){
while (pom != NULL && pom -> klucz != x){
tmp = pom;
pom = pom->nast;
}
if(pom!=NULL){
if(pom == q)
q = pom -> nast;
else
tmp->nast = pom->nast;
//free(pom);
}
else
printf("Elementu %d nie ma w liscie", x);
}
free(pom);
return q;
}