#include <stdio.h>
#include <stdlib.h>
// struktura dla listy jednokierunkowej
struct ListaInt {
int liczba;
struct ListaInt* next;
} Lista;
int main() {
struct ListaInt *head, *nowy, *tmp = NULL;
int liczba, i, deleted = 0;
scanf_s("%d", &liczba);
// tworzenie głowy
head->liczba = liczba;
head->next = NULL;
tmp = head;
// tworzenie ogona
for (i = 0; i<3; i++){
scanf_s("%d", &liczba);
// tworzenie miejsca w pamieci dla obiektu
// wpisywanie wartosci w pola struktury
nowy->liczba = liczba;
nowy->next = NULL;
// tmp wskazuje na "jeden wczesniej" dzieki temu poprzedni element listy moze wskazywac na juz istniejacy element
tmp->next = nowy;
tmp = nowy;
}
//tworzenie nowej glowy
scanf_s("%d", &liczba);
// tworzenie miejsca w pamieci dla obiektu
// wpisywanie wartosci w pola struktury
nowy->liczba = liczba;
// wskazujemy na stara glowe
nowy->next = head;
head = nowy;
// usuwanie elementu o konkretnej liczbie
printf("Podaj liczbe do skasowania: "); scanf_s("%d", &liczba);
// aby przeszukac liste należy wskaźnik tmp ustawić na pierwszy element
tmp = head;
// usowanie glowy
if (head->liczba == liczba)
{
head = head->next;
deleted = 1;
}
//w przeciwnym razie przeszukujemy liste
//tworze pomocniczy element do kasowania
struct ListaInt *aktualny = NULL, *poprzedni = NULL;
while (!deleted&&tmp->next != NULL){
if (tmp->next->liczba == liczba)
{
aktualny = tmp -> next;
tmp->next = tmp -> next -> next;
deleted = 1;
}
poprzedni = tmp;
tmp = tmp->next;
}
if (!deleted&&tmp->liczba == liczba)
{
poprzedni->next = NULL;
}
// aby wyswietlic listę należy wskaźnik tmp ustawić na pierwszy element
tmp = head;
do{
printf("liczba to: %d\n", tmp
->liczba
); tmp = tmp->next;
} while (tmp != NULL);
// ewentualnie mozna for
tmp = head;
/*for (i = 0; i<5; i++){
printf("liczba to: %d\n", tmp->liczba);
tmp = tmp->next;
} */
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCi8vIHN0cnVrdHVyYSBkbGEgbGlzdHkgamVkbm9raWVydW5rb3dlagpzdHJ1Y3QgTGlzdGFJbnQgewoJaW50IGxpY3piYTsKCXN0cnVjdCBMaXN0YUludCogbmV4dDsKfSBMaXN0YTsKCmludCBtYWluKCkgewoJc3RydWN0IExpc3RhSW50ICpoZWFkLCAqbm93eSwgKnRtcCA9IE5VTEw7CgoJaW50IGxpY3piYSwgaSwgZGVsZXRlZCA9IDA7CglwcmludGYoIlBvZGFqIGxpY3piZTogIik7CglzY2FuZl9zKCIlZCIsICZsaWN6YmEpOwoJLy8gdHdvcnplbmllIGfFgm93eQoJaGVhZCA9IG1hbGxvYyhzaXplb2YoTGlzdGEpKTsKCWhlYWQtPmxpY3piYSA9IGxpY3piYTsKCWhlYWQtPm5leHQgPSBOVUxMOwoJdG1wID0gaGVhZDsKCgkvLyB0d29yemVuaWUgb2dvbmEKCWZvciAoaSA9IDA7IGk8MzsgaSsrKXsKCQlwcmludGYoIlBvZGFqIGxpY3piZTogIik7CgkJc2NhbmZfcygiJWQiLCAmbGljemJhKTsKCQkvLyB0d29yemVuaWUgbWllanNjYSB3IHBhbWllY2kgZGxhIG9iaWVrdHUKCQlub3d5ID0gbWFsbG9jKHNpemVvZihMaXN0YSkpOwoJCS8vIHdwaXN5d2FuaWUgd2FydG9zY2kgdyBwb2xhIHN0cnVrdHVyeQoJCW5vd3ktPmxpY3piYSA9IGxpY3piYTsKCQlub3d5LT5uZXh0ID0gTlVMTDsKCQkvLyB0bXAgd3NrYXp1amUgbmEgImplZGVuIHdjemVzbmllaiIgZHppZWtpIHRlbXUgcG9wcnplZG5pIGVsZW1lbnQgbGlzdHkgbW96ZSB3c2thenl3YWMgbmEganV6IGlzdG5pZWphY3kgZWxlbWVudAoJCXRtcC0+bmV4dCA9IG5vd3k7CgkJdG1wID0gbm93eTsKCX0KCgkvL3R3b3J6ZW5pZSBub3dlaiBnbG93eQoJcHJpbnRmKCJQb2RhaiBsaWN6YmU6ICIpOwoJc2NhbmZfcygiJWQiLCAmbGljemJhKTsKCS8vIHR3b3J6ZW5pZSBtaWVqc2NhIHcgcGFtaWVjaSBkbGEgb2JpZWt0dQoJbm93eSA9IG1hbGxvYyhzaXplb2YoTGlzdGEpKTsKCS8vIHdwaXN5d2FuaWUgd2FydG9zY2kgdyBwb2xhIHN0cnVrdHVyeQoJbm93eS0+bGljemJhID0gbGljemJhOwoJLy8gd3NrYXp1amVteSBuYSBzdGFyYSBnbG93ZQoJbm93eS0+bmV4dCA9IGhlYWQ7CgloZWFkID0gbm93eTsKCgkvLyB1c3V3YW5pZSBlbGVtZW50dSBvIGtvbmtyZXRuZWogbGljemJpZQoJcHJpbnRmKCJQb2RhaiBsaWN6YmUgZG8gc2thc293YW5pYTogIik7CglzY2FuZl9zKCIlZCIsICZsaWN6YmEpOwoJLy8gYWJ5IHByemVzenVrYWMgbGlzdGUgbmFsZcW8eSB3c2thxbpuaWsgdG1wIHVzdGF3acSHIG5hIHBpZXJ3c3p5IGVsZW1lbnQKCXRtcCA9IGhlYWQ7CgkvLyB1c293YW5pZSBnbG93eQoJaWYgKGhlYWQtPmxpY3piYSA9PSBsaWN6YmEpCgl7CgkJaGVhZCA9IGhlYWQtPm5leHQ7CgkJZnJlZSh0bXApOwoJCWRlbGV0ZWQgPSAxOwoJfQoJLy93IHByemVjaXdueW0gcmF6aWUgcHJ6ZXN6dWt1amVteSBsaXN0ZQoJLy90d29yemUgcG9tb2NuaWN6eSBlbGVtZW50IGRvIGthc293YW5pYQoJc3RydWN0IExpc3RhSW50ICpha3R1YWxueSA9IE5VTEwsICpwb3ByemVkbmkgPSBOVUxMOwoJd2hpbGUgKCFkZWxldGVkJiZ0bXAtPm5leHQgIT0gTlVMTCl7CgkJaWYgKHRtcC0+bmV4dC0+bGljemJhID09IGxpY3piYSkKCQl7CgkJCWFrdHVhbG55ID0gdG1wIC0+IG5leHQ7CgkJCXRtcC0+bmV4dCA9IHRtcCAtPiBuZXh0IC0+IG5leHQ7CgkJCWZyZWUoYWt0dWFsbnkpOwoJCQlkZWxldGVkID0gMTsKCQl9CgkJcG9wcnplZG5pID0gdG1wOwoJCXRtcCA9IHRtcC0+bmV4dDsKCX0gCglpZiAoIWRlbGV0ZWQmJnRtcC0+bGljemJhID09IGxpY3piYSkKCXsKCQlwb3ByemVkbmktPm5leHQgPSBOVUxMOwoJCWZyZWUodG1wKTsKCX0KCgoKCS8vIGFieSB3eXN3aWV0bGljIGxpc3TEmSBuYWxlxbx5IHdza2HFum5payB0bXAgdXN0YXdpxIcgbmEgcGllcndzenkgZWxlbWVudAoJdG1wID0gaGVhZDsKCWRvewoJCXByaW50ZigibGljemJhIHRvOiAlZFxuIiwgdG1wLT5saWN6YmEpOwoJCXRtcCA9IHRtcC0+bmV4dDsKCX0gd2hpbGUgKHRtcCAhPSBOVUxMKTsKCgkvLyBld2VudHVhbG5pZSBtb3puYSBmb3IKCXRtcCA9IGhlYWQ7CgkvKmZvciAoaSA9IDA7IGk8NTsgaSsrKXsKCQlwcmludGYoImxpY3piYSB0bzogJWRcbiIsIHRtcC0+bGljemJhKTsKCQl0bXAgPSB0bXAtPm5leHQ7Cgl9ICovCglzeXN0ZW0oInBhdXNlIik7CglyZXR1cm4gMDsKfQo=