#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
}*head,*var,*trav;
int del_beg()
{
struct node *temp,*start;
temp = start;
start = start->next;
printf("nThe Element deleted Successfully "); }
int delete_from_middle(int value)
{
struct node *temp,*var;
temp=head;
while(temp!=NULL)
{
if(temp->data == value)
{
if(temp==head)
{
head=temp->next;
return 0;
}
else
{
var->next=temp->next;
return 0;
}
}
else
{
var=temp;
temp=temp->next;
}
}
printf("data deleted from list is %d",value
); }
int delete_from_end()
{
struct node *temp;
temp=head;
while(temp->next != NULL)
{
var=temp;
temp=temp->next;
}
if(temp ==head)
{
head=temp->next;
return 0;
}
printf("data deleted from list is %d",temp
->data
); var->next=NULL;
return 0;
}
void display()
{
trav=head;
if(trav==NULL)
{
}
else
{
printf("\nElements in the List: "); while(trav!=NULL)
{
trav=trav->next;
}
}
}
int main()
{
int i=0;
head=NULL;
while(1)
{
printf("\nenter the choice of operation to perform on linked list"); switch(i)
{
case 1:
{
del_beg();
display();
break;
}
case 2:
{
delete_from_end();
display();
break;
}
case 3:
{
int value;
display();
printf("\nenter the data that you want to delete from the list shown above"); delete_from_middle(value);
display();
break;
}
case 6:
{
}
}
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnN0cnVjdCBub2RlCnsKICAgIGludCBkYXRhOwogICAgc3RydWN0IG5vZGUgKm5leHQ7Cn0qaGVhZCwqdmFyLCp0cmF2OwoKaW50IGRlbF9iZWcoKQp7CnN0cnVjdCBub2RlICp0ZW1wLCpzdGFydDsKCnRlbXAgPSBzdGFydDsKc3RhcnQgPSBzdGFydC0+bmV4dDsKZnJlZSh0ZW1wKTsKcHJpbnRmKCJuVGhlIEVsZW1lbnQgZGVsZXRlZCBTdWNjZXNzZnVsbHkgIik7Cn0KaW50IGRlbGV0ZV9mcm9tX21pZGRsZShpbnQgdmFsdWUpCnsKICAgICBzdHJ1Y3Qgbm9kZSAqdGVtcCwqdmFyOwogICAgIHRlbXA9aGVhZDsKICAgICB3aGlsZSh0ZW1wIT1OVUxMKQogICAgIHsKICAgICAgICAgIGlmKHRlbXAtPmRhdGEgPT0gdmFsdWUpCiAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZih0ZW1wPT1oZWFkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBoZWFkPXRlbXAtPm5leHQ7CiAgICAgICAgICAgICAgICAgICAgIGZyZWUodGVtcCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB2YXItPm5leHQ9dGVtcC0+bmV4dDsKICAgICAgICAgICAgICAgICAgICAgZnJlZSh0ZW1wKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlCiAgICAgICAgICB7CiAgICAgICAgICAgICAgIHZhcj10ZW1wOwogICAgICAgICAgICAgICB0ZW1wPXRlbXAtPm5leHQ7CiAgICAgICAgICB9CiAgICAgfQpwcmludGYoImRhdGEgZGVsZXRlZCBmcm9tIGxpc3QgaXMgJWQiLHZhbHVlKTsKfQppbnQgZGVsZXRlX2Zyb21fZW5kKCkKewogICAgIHN0cnVjdCBub2RlICp0ZW1wOwogICAgIHRlbXA9aGVhZDsKICAgICB3aGlsZSh0ZW1wLT5uZXh0ICE9IE5VTEwpCiAgICAgewogICAgICAgICAgdmFyPXRlbXA7CiAgICAgICAgICB0ZW1wPXRlbXAtPm5leHQ7CiAgICAgfQogICAgIGlmKHRlbXAgPT1oZWFkKQogICAgIHsKICAgICAgICAgIGhlYWQ9dGVtcC0+bmV4dDsgCiAgICAgICAgICBmcmVlKHRlbXApOwogICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIHByaW50ZigiZGF0YSBkZWxldGVkIGZyb20gbGlzdCBpcyAlZCIsdGVtcC0+ZGF0YSk7CiAgICAgdmFyLT5uZXh0PU5VTEw7CiAgICAgZnJlZSh0ZW1wKTsKICAgICByZXR1cm4gMDsKfQp2b2lkIGRpc3BsYXkoKQp7CiAgICAgdHJhdj1oZWFkOwogICAgIGlmKHRyYXY9PU5VTEwpCiAgICAgewogICAgICAgICAgcHJpbnRmKCJcbkxpc3QgaXMgRW1wdHkiKTsKICAgICB9CiAgICAgZWxzZQogICAgIHsKICAgICAgICAgIHByaW50ZigiXG5FbGVtZW50cyBpbiB0aGUgTGlzdDogIik7CiAgICAgICAgICB3aGlsZSh0cmF2IT1OVUxMKQogICAgICAgICAgewogICAgICAgICAgICAgICBwcmludGYoIiAtPiAlZCAiLHRyYXYtPmRhdGEpOwogICAgICAgICAgICAgICB0cmF2PXRyYXYtPm5leHQ7CiAgICAgICAgICB9CiAgICAgIHByaW50ZigiXG4iKTsKICAgICAgfQp9CmludCBtYWluKCkKewogICAgIGludCBpPTA7CiAgICAgaGVhZD1OVUxMOwogICAgIHdoaWxlKDEpCiAgICAgewogICAgICAgICAgIHByaW50ZigiXG5lbnRlciB0aGUgY2hvaWNlIG9mIG9wZXJhdGlvbiB0byBwZXJmb3JtIG9uIGxpbmtlZCBsaXN0Iik7CiAgICAgICAgICAgc2NhbmYoIiVkIiwmaSk7CiAgICAgICAgICAgc3dpdGNoKGkpCiAgICAgICAgICAgewogICAgICAgICAgIAkJIGNhc2UgMToKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlbF9iZWcoKTsKICAgICAgICAgICAgICAgIGRpc3BsYXkoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlbGV0ZV9mcm9tX2VuZCgpOwogICAgICAgICAgICAgICAgZGlzcGxheSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgdmFsdWU7CiAgICAgICAgICAgICAgICBkaXNwbGF5KCk7CiAgICAgICAgICAgICAgICBwcmludGYoIlxuZW50ZXIgdGhlIGRhdGEgdGhhdCB5b3Ugd2FudCB0byBkZWxldGUgZnJvbSB0aGUgbGlzdCBzaG93biBhYm92ZSIpOwogICAgICAgICAgICAgICAgc2NhbmYoIiVkIiwmdmFsdWUpOwogICAgICAgICAgICAgICAgZGVsZXRlX2Zyb21fbWlkZGxlKHZhbHVlKTsKICAgICAgICAgICAgICAgIGRpc3BsYXkoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZXhpdCgwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgIH0KcmV0dXJuIDA7Cn0=