#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct spis
{char data[20];
struct spis *v1;
struct spis *v2;
};
void create(void); //создание списка
void list(spis *); //просмотр списка
void add(void); //добавление списка
struct spis *head,*tail;
int main()
{
int nom;
create();
add();
printf("list head:\n");
list(head);
printf("list tail:\n");
list(tail);
printf("the end\n");
return 0;
}
void create(void)
{spis *p,*pred;
pred=NULL;
p=(spis *)malloc(sizeof(spis));
/*printf(":Данные ");*/ gets(p->data);
p->v1=pred;
if (pred != NULL)
pred->v2=p;
else
head=p;
pred=p;
tail=p;
tail->v2=NULL;
}
void add(void)
{
spis *p,*pn;
//clrscr();
pn=(spis *)malloc(sizeof(spis));
//printf("Введите данные: ");
gets(pn->data);
p=tail;
pn->v1=tail;
pn->v2=NULL;
p->v2=pn;
tail=pn;
}
void list(spis *p)
{if (p==head)
while (p != NULL)
{puts(p->data);
p=p->v2;
}
else if (p==tail)
while ( p!= NULL)
{
printf("%s\n",p->data);
p=p->v1;
}
else
puts("Неверный адрес ");
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgpzdHJ1Y3Qgc3Bpcwp7Y2hhciBkYXRhWzIwXTsKICBzdHJ1Y3Qgc3BpcyAqdjE7IAogIHN0cnVjdCBzcGlzICp2MjsgCiAgCn07CnZvaWQgY3JlYXRlKHZvaWQpOyAvL9GB0L7Qt9C00LDQvdC40LUg0YHQv9C40YHQutCwCnZvaWQgbGlzdChzcGlzICopOyAvL9C/0YDQvtGB0LzQvtGC0YAg0YHQv9C40YHQutCwCnZvaWQgYWRkKHZvaWQpOyAgLy/QtNC+0LHQsNCy0LvQtdC90LjQtSDRgdC/0LjRgdC60LAKc3RydWN0IHNwaXMgKmhlYWQsKnRhaWw7IAppbnQgbWFpbigpCnsKCWludCBub207CiAgICBjcmVhdGUoKTsKICAgIGFkZCgpOwogICAgcHJpbnRmKCJsaXN0IGhlYWQ6XG4iKTsKICAgCWxpc3QoaGVhZCk7CiAgIAlwcmludGYoImxpc3QgdGFpbDpcbiIpOwogICAgbGlzdCh0YWlsKTsKICAgIHByaW50ZigidGhlIGVuZFxuIik7CiAgICByZXR1cm4gMDsKfQoKdm9pZCBjcmVhdGUodm9pZCkKe3NwaXMgKnAsKnByZWQ7CiAgcHJlZD1OVUxMOwogIHA9KHNwaXMgKiltYWxsb2Moc2l6ZW9mKHNwaXMpKTsKICAgIC8qcHJpbnRmKCI60JTQsNC90L3Ri9C1ICIpOyovIGdldHMocC0+ZGF0YSk7CiAgICAgIHAtPnYxPXByZWQ7CiAgICBpZiAocHJlZCAhPSBOVUxMKQogICAgICBwcmVkLT52Mj1wOwogICAgZWxzZQogICAgICBoZWFkPXA7CiAgICBwcmVkPXA7CiAgdGFpbD1wOwogIHRhaWwtPnYyPU5VTEw7Cn0Kdm9pZCBhZGQodm9pZCkgCnsKICAgICAgICAgICAgc3BpcyAqcCwqcG47IAogICAgICAgICAgICAvL2NscnNjcigpOwogICAgICAgICAgICBwbj0oc3BpcyAqKW1hbGxvYyhzaXplb2Yoc3BpcykpOwogICAgICAgICAgICAvL3ByaW50Zigi0JLQstC10LTQuNGC0LUg0LTQsNC90L3Ri9C1OiAiKTsKICAgICAgICAgICAgZ2V0cyhwbi0+ZGF0YSk7ICAgICAgICAgICAgCiAgICAgICAgICAgIHA9dGFpbDsgCiAgICAgICAgICAgIHBuLT52MT10YWlsOyAKICAgICAgICAgICAgcG4tPnYyPU5VTEw7CiAgICAgICAgICAgIHAtPnYyPXBuOwogICAgICAgICAgICB0YWlsPXBuOyAKfQoKdm9pZCBsaXN0KHNwaXMgKnApCntpZiAocD09aGVhZCkKICB3aGlsZSAocCAhPSBOVUxMKQogICAge3B1dHMocC0+ZGF0YSk7CiAgICAgIHA9cC0+djI7CiAgICB9CiAgIGVsc2UgaWYgKHA9PXRhaWwpCiAgd2hpbGUgKCBwIT0gTlVMTCkKICB7CiAgICAgICAgcHJpbnRmKCIlc1xuIixwLT5kYXRhKTsKICAgIHA9cC0+djE7CiAgfQogIGVsc2UKICAgIHB1dHMoItCd0LXQstC10YDQvdGL0Lkg0LDQtNGA0LXRgSAiKTsKfQo=