#include<stdio.h>
#include<stdlib.h>
 
typedef struct node
{
    int data;
    struct node *next;
} node;
 
node * mknode()
{
}
 
void create(node *h, int num)
{
    int i = 0;
    h->data = i;
 
    for(i = 1; i < num; i++)
    {
        h->next = mknode();
        h = h->next;
        h->data = i;
    }
    h->next = NULL;
}
 
void display(node *h)
{   
    while(1)
    {
        h = h->next;
        if (h != NULL)
        else
            break;
    }
}
 
void append_end(node *h, int val)
{
    while(h->next != NULL)
    	h = h->next;
 
    h->next = mknode();
    h->next->data = val;
    h->next->next = NULL;
}
 
void free_list(node *h)
{
    node * tail;
 
    while(h != NULL)
    {
        tail = h->next;
        h = tail;
    }
}
 
int main()
{
    node * head = mknode();
    int num;
 
    create(head, num);
 
    append_end(head,5);
    append_end(head,6);
 
    display(head);
    free_list(head);
    return 0;
}
				I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+Cgp0eXBlZGVmIHN0cnVjdCBub2RlCnsKICAgIGludCBkYXRhOwogICAgc3RydWN0IG5vZGUgKm5leHQ7Cn0gbm9kZTsKCm5vZGUgKiBta25vZGUoKQp7CiAgICByZXR1cm4gbWFsbG9jKHNpemVvZihub2RlKSk7Cn0KCnZvaWQgY3JlYXRlKG5vZGUgKmgsIGludCBudW0pCnsKICAgIGludCBpID0gMDsKICAgIGgtPmRhdGEgPSBpOwoKICAgIGZvcihpID0gMTsgaSA8IG51bTsgaSsrKQogICAgewogICAgICAgIGgtPm5leHQgPSBta25vZGUoKTsKICAgICAgICBoID0gaC0+bmV4dDsKICAgICAgICBoLT5kYXRhID0gaTsKICAgIH0KICAgIGgtPm5leHQgPSBOVUxMOwp9Cgp2b2lkIGRpc3BsYXkobm9kZSAqaCkKeyAgIAogICAgd2hpbGUoMSkKICAgIHsKICAgICAgICBwcmludGYoIiVkIiwgaC0+ZGF0YSk7CiAgICAgICAgaCA9IGgtPm5leHQ7CiAgICAgICAgaWYgKGggIT0gTlVMTCkKICAgICAgICAgICAgcHJpbnRmKCIlcyIsICItPiIpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgYnJlYWs7CiAgICB9Cn0KCnZvaWQgYXBwZW5kX2VuZChub2RlICpoLCBpbnQgdmFsKQp7CiAgICB3aGlsZShoLT5uZXh0ICE9IE5VTEwpCiAgICAJaCA9IGgtPm5leHQ7CgogICAgaC0+bmV4dCA9IG1rbm9kZSgpOwogICAgaC0+bmV4dC0+ZGF0YSA9IHZhbDsKICAgIGgtPm5leHQtPm5leHQgPSBOVUxMOwp9Cgp2b2lkIGZyZWVfbGlzdChub2RlICpoKQp7CiAgICBub2RlICogdGFpbDsKCiAgICB3aGlsZShoICE9IE5VTEwpCiAgICB7CiAgICAgICAgdGFpbCA9IGgtPm5leHQ7CiAgICAgICAgZnJlZShoKTsKICAgICAgICBoID0gdGFpbDsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBub2RlICogaGVhZCA9IG1rbm9kZSgpOwogICAgaW50IG51bTsKCiAgICBzY2FuZigiJWQiLCZudW0pOwogICAgY3JlYXRlKGhlYWQsIG51bSk7CgogICAgYXBwZW5kX2VuZChoZWFkLDUpOwogICAgYXBwZW5kX2VuZChoZWFkLDYpOwoKICAgIGRpc3BsYXkoaGVhZCk7CiAgICBmcmVlX2xpc3QoaGVhZCk7CiAgICByZXR1cm4gMDsKfQ==