#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node* next,*pre;
}s;
s *head = NULL,*tail=NULL,*p,*q;
void create(void)
{
if(head==NULL)
{
head=p;
tail=p;
head->pre=NULL;
}
else
{
p->pre=tail;
tail->next=p;
tail=p;
}
tail->next=NULL;
}
void insert_at_beg(void)
{
if(head==NULL)
{
printf("no linked list created"); }
else
{
head->pre=p;
p->next=head;
head=p;
}
}
void ins_pos(void)
{
int i=0,pos;
printf("enter position in which node will be inserted"); for(p=head;p!=NULL;p=p->next)
{
i++;
}
if(pos>i)
{
printf("there is no position in that linked list"); }
else
{
q=head;
for(i=1;i<pos;i++)
{
q=q->next;
}
p->next=q->next;
p->pre=q->pre;
q->next=p;
p=p->next;
p->pre=q->next;
}
}
void del_pos(void)
{
int i=0,pos;
printf("enter position in which node will be inserted"); for(p=head;p->next!=NULL;p=p->next)
{
i++;
}
if(pos>i)
{
printf("there is no position in that linked list"); }
else
{
q=head;
for(i=1;i<pos;i++)
{
q=q->next;
}
p=q->next;
q->next=p->next;
q=p->next;
q->pre=p->pre;
}
}
void search(void)
{
int x;
printf("enter the element to be found"); for(p=head;p!=tail;p=p->next)
{
if(x==p->data)
{
return;
}
}
}
void display(void)
{
for(p=head;p!=NULL;p=p->next)
{
}
}
void main()
{
int i;
{
printf("1.create\n2.insert_at_beg\n3.ns_pos\n4.del_pos\n5.search\n6.display\n"); switch(i)
{
case 1:
create();
break;
case 2:
insert_at_beg();
break;
case 3:
ins_pos();
break;
case 4:
del_pos();
break;
case 5:
search();
break;
case 6:
display();
break;
default:
break;
}
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnR5cGVkZWYgc3RydWN0IG5vZGUKewppbnQgZGF0YTsKc3RydWN0IG5vZGUqIG5leHQsKnByZTsKfXM7CnMgKmhlYWQgPSBOVUxMLCp0YWlsPU5VTEwsKnAsKnE7CnZvaWQgY3JlYXRlKHZvaWQpCnsKcD0ocyopbWFsbG9jIChzaXplb2YocykpOwpwcmludGYoImVudGVyIHRoZSBkYXRhIik7CnNjYW5mKCIlZCIsJnAtPmRhdGEpOwppZihoZWFkPT1OVUxMKQp7CmhlYWQ9cDsKdGFpbD1wOwpoZWFkLT5wcmU9TlVMTDsKfQplbHNlCnsKcC0+cHJlPXRhaWw7CiAgICB0YWlsLT5uZXh0PXA7CiAgICB0YWlsPXA7Cn0KdGFpbC0+bmV4dD1OVUxMOwp9CnZvaWQgaW5zZXJ0X2F0X2JlZyh2b2lkKQp7CnA9KHMqKW1hbGxvYyAoc2l6ZW9mKHMpKTsKcHJpbnRmKCJlbnRlciB0aGUgZGF0YSIpOwpzY2FuZigiJWQiLCZwLT5kYXRhKTsKaWYoaGVhZD09TlVMTCkKewpwcmludGYoIm5vIGxpbmtlZCBsaXN0IGNyZWF0ZWQiKTsKfQplbHNlCnsKaGVhZC0+cHJlPXA7CnAtPm5leHQ9aGVhZDsKaGVhZD1wOwp9Cn0Kdm9pZCBpbnNfcG9zKHZvaWQpCnsKaW50IGk9MCxwb3M7CnByaW50ZigiZW50ZXIgcG9zaXRpb24gaW4gd2hpY2ggbm9kZSB3aWxsIGJlIGluc2VydGVkIik7CnNjYW5mKCIlZCIsJnBvcyk7CmZvcihwPWhlYWQ7cCE9TlVMTDtwPXAtPm5leHQpCnsKaSsrOwp9CmlmKHBvcz5pKQp7CnByaW50ZigidGhlcmUgaXMgbm8gcG9zaXRpb24gaW4gdGhhdCBsaW5rZWQgbGlzdCIpOwp9CmVsc2UKewpxPWhlYWQ7CmZvcihpPTE7aTxwb3M7aSsrKQp7CiAgcT1xLT5uZXh0Owp9CnA9KHMqKW1hbGxvYyAoc2l6ZW9mKHMpKTsKICAgIHByaW50ZigiZW50ZXIgdGhlIGRhdGEiKTsKICAgc2NhbmYoIiVkIiwmcC0+ZGF0YSk7CiAgIHAtPm5leHQ9cS0+bmV4dDsKICAgcC0+cHJlPXEtPnByZTsKICAgcS0+bmV4dD1wOwogICBwPXAtPm5leHQ7CiAgIHAtPnByZT1xLT5uZXh0Owp9Cn0Kdm9pZCBkZWxfcG9zKHZvaWQpCnsKaW50IGk9MCxwb3M7CnByaW50ZigiZW50ZXIgcG9zaXRpb24gaW4gd2hpY2ggbm9kZSB3aWxsIGJlIGluc2VydGVkIik7CnNjYW5mKCIlZCIsJnBvcyk7CmZvcihwPWhlYWQ7cC0+bmV4dCE9TlVMTDtwPXAtPm5leHQpCnsKaSsrOwp9CmlmKHBvcz5pKQp7CnByaW50ZigidGhlcmUgaXMgbm8gcG9zaXRpb24gaW4gdGhhdCBsaW5rZWQgbGlzdCIpOwp9CmVsc2UKewpxPWhlYWQ7CmZvcihpPTE7aTxwb3M7aSsrKQp7CiAgcT1xLT5uZXh0Owp9CnA9cS0+bmV4dDsKcS0+bmV4dD1wLT5uZXh0OwpxPXAtPm5leHQ7CnEtPnByZT1wLT5wcmU7CmZyZWUocCk7Cn0KfQp2b2lkIHNlYXJjaCh2b2lkKQp7CmludCB4OwpwcmludGYoImVudGVyIHRoZSBlbGVtZW50IHRvIGJlIGZvdW5kIik7CnNjYW5mKCIlZCIsJngpOwpmb3IocD1oZWFkO3AhPXRhaWw7cD1wLT5uZXh0KQp7CmlmKHg9PXAtPmRhdGEpCnsKcHJpbnRmKCJlbGVtZW50IGlzIGZvdW5kIik7CnJldHVybjsKfQp9CnByaW50ZigiZWxlbWVudCBmb3VuZCAiKTsKfQp2b2lkIGRpc3BsYXkodm9pZCkKewpmb3IocD1oZWFkO3AhPU5VTEw7cD1wLT5uZXh0KQp7CnByaW50ZigiJWQiLHAtPmRhdGEpOwp9Cn0Kdm9pZCBtYWluKCkKewppbnQgaTsKCnsKcHJpbnRmKCIxLmNyZWF0ZVxuMi5pbnNlcnRfYXRfYmVnXG4zLm5zX3Bvc1xuNC5kZWxfcG9zXG41LnNlYXJjaFxuNi5kaXNwbGF5XG4iKTsKcHJpbnRmKCJjaG9vc2UgdGhlIGNob2ljZSIpOwpzY2FuZigiJWQiLCZpKTsKc3dpdGNoKGkpCnsKCWNhc2UgMToKCSAgICBjcmVhdGUoKTsKICAgICAJYnJlYWs7CgljYXNlIDI6CiAgICAgIAlpbnNlcnRfYXRfYmVnKCk7CiAgICAJYnJlYWs7CgljYXNlIDM6CiAgICAgICAJaW5zX3BvcygpOwoJICAgIGJyZWFrOwoJY2FzZSA0OgogICAgCWRlbF9wb3MoKTsKICAgIAlicmVhazsKCWNhc2UgNToKICAgIAlzZWFyY2goKTsKICAgIAlicmVhazsKCWNhc2UgNjoKICAgICAgICBkaXNwbGF5KCk7CiAgICAJIGJyZWFrOwoJIGRlZmF1bHQ6CgkgICAgIGJyZWFrOwoJICAgCn0JIAoJCn0KfQ==