#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct os{
char imie[20];
struct os *nast;
}osoba;
void lista(osoba *o)
{
while(1)
{
if(o->nast != NULL)
{
o=o->nast;
}
else
{
break;
}
}
}
void lista_dodaj(osoba *o) //Funkcja dodajaca osobe na koncu
{
while(1)
{
//printf("%s \n",o->imie);
if(o->nast != NULL) //Przeskoczenie do nast pozycji
{
o=o->nast;
}
else //Na koncu
{
o=o->nast;
printf("Podaj nazwe nowej osoby: "); break;
}
}
}
int main()
{
osoba o1;
o1.nast=NULL;
osoba o2;
o2.nast=NULL;
osoba o3;
o3.nast=NULL;
osoba o4;
o4.nast=NULL;
o1.nast=&o2;
o2.nast=&o3;
o3.nast=&o4;
lista(&o1);
lista_dodaj(&o1);
lista_dodaj(&o1);
lista(&o1);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgogCnR5cGVkZWYgc3RydWN0IG9zewogICAgY2hhciBpbWllWzIwXTsKICAgIHN0cnVjdCBvcyAqbmFzdDsKfW9zb2JhOwogCnZvaWQgbGlzdGEob3NvYmEgKm8pCnsKIAogICAgd2hpbGUoMSkKICAgIHsKICAgICAgICBwcmludGYoIiVzXG4iLG8tPmltaWUpOwogICAgICAgIGlmKG8tPm5hc3QgIT0gTlVMTCkKICAgICAgICB7CiAgICAgICAgICAgIG89by0+bmFzdDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogCiAgICB9Cn0KIAp2b2lkIGxpc3RhX2RvZGFqKG9zb2JhICpvKSAvL0Z1bmtjamEgZG9kYWphY2Egb3NvYmUgbmEga29uY3UKewogCiAgICB3aGlsZSgxKQogICAgewogICAgICAgIC8vcHJpbnRmKCIlcyBcbiIsby0+aW1pZSk7CiAgICAgICAgaWYoby0+bmFzdCAhPSBOVUxMKSAvL1ByemVza29jemVuaWUgZG8gbmFzdCBwb3p5Y2ppCiAgICAgICAgewogICAgICAgICAgICBvPW8tPm5hc3Q7CiAgICAgICAgfQogICAgICAgIGVsc2UgLy9OYSBrb25jdQogICAgICAgIHsKICAgICAgICAgICAgby0+bmFzdD1tYWxsb2Moc2l6ZW9mKG8pKTsKICAgICAgICAgICAgbz1vLT5uYXN0OwogICAgICAgICAgICBwcmludGYoIlBvZGFqIG5hendlIG5vd2VqIG9zb2J5OiAiKTsKICAgICAgICAgICAgc2NhbmYoIiVzIixvLT5pbWllKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogCiAgICB9Cn0KIAogCmludCBtYWluKCkKewogICAgb3NvYmEgbzE7CiAgICBzdHJjcHkobzEuaW1pZSwiTWFjaWVqIik7CiAgICBvMS5uYXN0PU5VTEw7CiAKICAgIG9zb2JhIG8yOwogICAgc3RyY3B5KG8yLmltaWUsIk1hdGV1c3oiKTsKICAgIG8yLm5hc3Q9TlVMTDsKIAogICAgb3NvYmEgbzM7CiAgICBzdHJjcHkobzMuaW1pZSwiRGF3aWQiKTsKICAgIG8zLm5hc3Q9TlVMTDsKIAogICAgb3NvYmEgbzQ7CiAgICBzdHJjcHkobzQuaW1pZSwiQmFydGVrIik7CiAgICBvNC5uYXN0PU5VTEw7CiAKICAgIG8xLm5hc3Q9Jm8yOwogICAgbzIubmFzdD0mbzM7CiAgICBvMy5uYXN0PSZvNDsKIAogICAgbGlzdGEoJm8xKTsKICAgIHByaW50ZigiXG4iKTsKICAgIGxpc3RhX2RvZGFqKCZvMSk7CiAgICBsaXN0YV9kb2RhaigmbzEpOwogICAgcHJpbnRmKCJcbiIpOwogICAgbGlzdGEoJm8xKTsKIAogICAgcmV0dXJuIDA7Cn0=