#include <stdio.h>
#include <stdlib.h>
typedef struct list_t
{
int value;
struct list_t * next;
} list;
void insert(list **, int);
void print(list *);
void destroy(list *);
int main()
{
list * mylist = NULL;
insert(&mylist, 10);
insert(&mylist, 20);
print(mylist);
destroy(mylist);
return 0;
}
void insert(list ** head, int value)
{
list * new_node = NULL;
new_node
= (list
*)malloc(sizeof(list
));
new_node->value = value;
new_node->next = NULL;
if(*head == NULL)
{
*head = new_node;
}
else
{
list * cur = *head;
while(cur->next != NULL)
{
cur = cur->next;
}
cur->next = new_node;
}
}
void print(list * head)
{
while(head != NULL)
{
head = head->next;
}
}
void destroy(list * head)
{
while(head != NULL)
{
list * tmp = head->next;
head = tmp;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IGxpc3RfdAp7CiAgICBpbnQgdmFsdWU7CiAgICBzdHJ1Y3QgbGlzdF90ICogbmV4dDsKfSBsaXN0OwoKdm9pZCBpbnNlcnQobGlzdCAqKiwgaW50KTsKdm9pZCBwcmludChsaXN0ICopOwp2b2lkIGRlc3Ryb3kobGlzdCAqKTsKCmludCBtYWluKCkKewogICAgbGlzdCAqIG15bGlzdCA9IE5VTEw7CgogICAgaW5zZXJ0KCZteWxpc3QsIDEwKTsKICAgIGluc2VydCgmbXlsaXN0LCAyMCk7CgogICAgcHJpbnQobXlsaXN0KTsKICAgIGRlc3Ryb3kobXlsaXN0KTsKICAgIHJldHVybiAwOwp9Cgp2b2lkIGluc2VydChsaXN0ICoqIGhlYWQsIGludCB2YWx1ZSkKewogICAgbGlzdCAqIG5ld19ub2RlID0gTlVMTDsKICAgIG5ld19ub2RlID0gKGxpc3QgKiltYWxsb2Moc2l6ZW9mKGxpc3QpKTsKCiAgICBuZXdfbm9kZS0+dmFsdWUgPSB2YWx1ZTsKICAgIG5ld19ub2RlLT5uZXh0ID0gTlVMTDsKCiAgICBpZigqaGVhZCA9PSBOVUxMKQogICAgewogICAgICAgICpoZWFkID0gbmV3X25vZGU7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgbGlzdCAqIGN1ciA9ICpoZWFkOwogICAgICAgIHdoaWxlKGN1ci0+bmV4dCAhPSBOVUxMKQogICAgICAgIHsKICAgICAgICAgICAgY3VyID0gY3VyLT5uZXh0OwogICAgICAgIH0KICAgICAgICBjdXItPm5leHQgPSBuZXdfbm9kZTsKICAgIH0KfQoKdm9pZCBwcmludChsaXN0ICogaGVhZCkKewogICAgd2hpbGUoaGVhZCAhPSBOVUxMKQogICAgewogICAgICAgIHByaW50ZigiJWRcdCIsIGhlYWQtPnZhbHVlKTsKICAgICAgICBoZWFkID0gaGVhZC0+bmV4dDsKICAgIH0KfQoKdm9pZCBkZXN0cm95KGxpc3QgKiBoZWFkKQp7CiAgICB3aGlsZShoZWFkICE9IE5VTEwpCiAgICB7CiAgICAgICAgbGlzdCAqIHRtcCA9IGhlYWQtPm5leHQ7CiAgICAgICAgZnJlZShoZWFkKTsKICAgICAgICBoZWFkID0gdG1wOwogICAgfQp9