#include<stdio.h>
#include<stdlib.h>
struct node
{
int info;
struct node *link;
};
struct node *addtobeg(struct node *start,int data)
{
struct node *tmp;
tmp
=(struct node
*)malloc(sizeof(struct node
)); tmp->info=data;
tmp->link=NULL;
start=tmp;
return start;
}
struct node *addtoend(struct node *start,int data)
{
struct node *tmp,*p;
if(start==NULL)
{
return start;
}
p=start;
while(p->link!=NULL)
p=p->link;
tmp
=(struct node
*)malloc(sizeof(struct node
)); tmp->info=data;
tmp->link=p->link;
p->link=tmp;
return start;
}
void display(struct node *start)
{
struct node *p;
if(start==NULL)
{
return;
}
p=start;
while(p!=NULL)
{
p=p->link;
}
}
struct node *create_list(struct node *start)
{
start=addtobeg(start,23);
start=addtoend(start,67);
start=addtoend(start,89);
start=addtoend(start,7);
start=addtoend(start,34);
return start;
}
struct node *deletes(struct node *start)
{
struct node *current,*next;
current=start;
while(current!=NULL)
{
next=current->link;
start=next;
current=next;
}
start=NULL;
return start;
}
int main()
{
struct node *start;
start=NULL;
start=create_list(start);
display(start);
start=deletes(start);
display(start);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnN0cnVjdCBub2RlIAp7CiAgICBpbnQgaW5mbzsKCXN0cnVjdCBub2RlICpsaW5rOwp9OwpzdHJ1Y3Qgbm9kZSAqYWRkdG9iZWcoc3RydWN0IG5vZGUgKnN0YXJ0LGludCBkYXRhKQp7CglzdHJ1Y3Qgbm9kZSAqdG1wOwoJdG1wPShzdHJ1Y3Qgbm9kZSAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IG5vZGUpKTsKCXRtcC0+aW5mbz1kYXRhOwoJdG1wLT5saW5rPU5VTEw7CglzdGFydD10bXA7CglyZXR1cm4gc3RhcnQ7Cn0Kc3RydWN0IG5vZGUgKmFkZHRvZW5kKHN0cnVjdCBub2RlICpzdGFydCxpbnQgZGF0YSkKewoJc3RydWN0IG5vZGUgKnRtcCwqcDsKCWlmKHN0YXJ0PT1OVUxMKQoJewoJCXByaW50ZigiTm8gMXN0IGVsZW1lbnQ6XG4iKTsKCQlyZXR1cm4gc3RhcnQ7Cgl9CglwPXN0YXJ0OwoJd2hpbGUocC0+bGluayE9TlVMTCkKCXA9cC0+bGluazsKCXRtcD0oc3RydWN0IG5vZGUgKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBub2RlKSk7Cgl0bXAtPmluZm89ZGF0YTsKCXRtcC0+bGluaz1wLT5saW5rOwoJcC0+bGluaz10bXA7CglyZXR1cm4gc3RhcnQ7Cn0Kdm9pZCBkaXNwbGF5KHN0cnVjdCBub2RlICpzdGFydCkKewoJc3RydWN0IG5vZGUgKnA7CglpZihzdGFydD09TlVMTCkKCXsKCQlwcmludGYoIkVtcHR5IGxpc3Q6XG4iKTsKCQlyZXR1cm47Cgl9CglwPXN0YXJ0OwoJcHJpbnRmKCJcbiIpOwoJd2hpbGUocCE9TlVMTCkKCXsKCSAgcHJpbnRmKCIgJWQiLHAtPmluZm8pOwoJICBwPXAtPmxpbms7CiAgICB9CiAgICBwcmludGYoIlxuIik7Cn0Kc3RydWN0IG5vZGUgKmNyZWF0ZV9saXN0KHN0cnVjdCBub2RlICpzdGFydCkKewoJc3RhcnQ9YWRkdG9iZWcoc3RhcnQsMjMpOwoJc3RhcnQ9YWRkdG9lbmQoc3RhcnQsNjcpOwoJc3RhcnQ9YWRkdG9lbmQoc3RhcnQsODkpOwoJc3RhcnQ9YWRkdG9lbmQoc3RhcnQsNyk7CglzdGFydD1hZGR0b2VuZChzdGFydCwzNCk7CglyZXR1cm4gc3RhcnQ7Cn0Kc3RydWN0IG5vZGUgKmRlbGV0ZXMoc3RydWN0IG5vZGUgKnN0YXJ0KQp7CglzdHJ1Y3Qgbm9kZSAqY3VycmVudCwqbmV4dDsKCWN1cnJlbnQ9c3RhcnQ7Cgl3aGlsZShjdXJyZW50IT1OVUxMKQoJewoJCW5leHQ9Y3VycmVudC0+bGluazsKCQlmcmVlKGN1cnJlbnQpOwoJCXN0YXJ0PW5leHQ7CgkJY3VycmVudD1uZXh0OwoJfQoJc3RhcnQ9TlVMTDsKCXJldHVybiBzdGFydDsKfQppbnQgbWFpbigpCnsKCXN0cnVjdCBub2RlICpzdGFydDsKCXN0YXJ0PU5VTEw7CglzdGFydD1jcmVhdGVfbGlzdChzdGFydCk7CglkaXNwbGF5KHN0YXJ0KTsKCXByaW50ZigiQWZ0ZXIgZGVsZXRpb246XG4iKTsKCXN0YXJ0PWRlbGV0ZXMoc3RhcnQpOwoJZGlzcGxheShzdGFydCk7CglyZXR1cm4gMDsKfQ==