#include<stdio.h>
#include<stdlib.h>
void begininsert( ) ;
void endinsert( ) ;
void specificinsert( ) ;
void begindelete( ) ;
void enddelete( ) ;
void specificdelete( ) ;
struct Node
{
int Data;
struct Node * Next;
} ;
struct Node * head,* temp;
int main( )
{
struct Node * newnode;
head= NULL;
int ch= 1 , choice;
while ( ch== 1 )
{
newnode
= ( struct Node
* ) malloc ( sizeof ( struct Node
) ) ; printf ( "Enter the value for linked list creation\n " ) ; scanf ( "%d" ,& newnode
-> Data
) ; newnode-> Next= NULL;
if ( head== NULL)
{
head= temp= newnode;
}
else
{
temp-> Next= newnode;
temp= newnode;
}
printf ( "DO YOU WANT TO CONTINUE\n " ) ; }
printf ( "Enter the choice for ur insertion:\n " ) ; switch ( choice)
{
case 1 :
begininsert( ) ;
break ;
case 2 :
endinsert( ) ;
break ;
case 3 :
specificinsert( ) ;
break ;
case 4 :
begindelete( ) ;
break ;
case 5 :
enddelete( ) ;
break ;
case 6 :
specificdelete( ) ;
break ;
default :
printf ( "Enter correct choice" ) ; break ;
}
return 0 ;
}
void begininsert( )
{
struct Node * newnode;
newnode
= ( struct Node
* ) malloc ( sizeof ( struct Node
) ) ; printf ( "Enter the value for the new node:\n " ) ; scanf ( "%d" ,& newnode
-> Data
) ; newnode-> Next= head;
head= newnode;
temp= head;
while ( temp!= NULL)
{
temp= temp-> Next;
}
}
void endinsert( )
{
struct Node * newnode;
newnode
= ( struct Node
* ) malloc ( sizeof ( struct Node
) ) ; printf ( "Enter the value for the new node:\n " ) ; scanf ( "%d" ,& newnode
-> Data
) ; newnode-> Next= NULL;
temp= head;
while ( temp-> Next!= NULL)
{
temp= temp-> Next;
}
temp-> Next= newnode;
temp= head;
while ( temp!= NULL)
{
temp= temp-> Next;
}
}
void specificinsert( )
{
struct Node * newnode;
int pos, i= 1 ;
newnode
= ( struct Node
* ) malloc ( sizeof ( struct Node
) ) ; printf ( "Enter the value for the new node:\n " ) ; scanf ( "%d" ,& newnode
-> Data
) ; newnode-> Next= NULL;
printf ( "Enter the position to insert:\n " ) ;
temp= head;
while ( i< pos- 1 )
{
temp= temp-> Next;
i++;
}
newnode-> Next= temp-> Next;
temp-> Next= newnode;
temp= head;
while ( temp!= NULL)
{
temp= temp-> Next;
}
}
void begindelete( )
{
struct Node * display;
temp= head;
head= head-> Next;
display= head;
while ( display!= NULL)
{
display= display-> Next;
}
}
void enddelete( )
{
struct Node * display,* prev;
temp= head;
prev= NULL;
while ( temp-> Next!= NULL)
{
prev= temp;
temp= temp-> Next;
}
prev-> Next= NULL;
display= head;
while ( display!= NULL)
{
display= display-> Next;
}
}
void specificdelete( )
{
struct Node * delNode,* display;
int pos, i= 1 ;
printf ( "Enter the position to delete:\n " ) ; temp= head;
while ( i< pos- 1 )
{
temp= temp-> Next;
i++;
}
delNode= temp-> Next;
temp-> Next= delNode-> Next;
display= head;
while ( display!= NULL)
{
display= display-> Next;
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnZvaWQgYmVnaW5pbnNlcnQoKTsKdm9pZCBlbmRpbnNlcnQoKTsKdm9pZCBzcGVjaWZpY2luc2VydCgpOwp2b2lkIGJlZ2luZGVsZXRlKCk7CnZvaWQgZW5kZGVsZXRlKCk7CnZvaWQgc3BlY2lmaWNkZWxldGUoKTsKc3RydWN0IE5vZGUKewoJaW50IERhdGE7CglzdHJ1Y3QgTm9kZSAqTmV4dDsKfTsKc3RydWN0IE5vZGUgKmhlYWQsKnRlbXA7CmludCBtYWluKCkKewoJc3RydWN0IE5vZGUgKm5ld25vZGU7CgloZWFkPU5VTEw7CglpbnQgY2g9MSxjaG9pY2U7Cgl3aGlsZShjaD09MSkKCXsKICAgIAkJbmV3bm9kZT0oc3RydWN0IE5vZGUqKW1hbGxvYyhzaXplb2Yoc3RydWN0IE5vZGUpKTsKCQlwcmludGYoIkVudGVyIHRoZSB2YWx1ZSBmb3IgbGlua2VkIGxpc3QgY3JlYXRpb25cbiIpOwogICAgCQlzY2FuZigiJWQiLCZuZXdub2RlLT5EYXRhKTsKICAgIAkJbmV3bm9kZS0+TmV4dD1OVUxMOwogICAgCQlpZihoZWFkPT1OVUxMKQoJCXsKCQkJaGVhZD10ZW1wPW5ld25vZGU7CgkJfQoJCWVsc2UKCQl7CgkJCXRlbXAtPk5leHQ9bmV3bm9kZTsKCQkJdGVtcD1uZXdub2RlOwoJCX0KCQlwcmludGYoIkRPIFlPVSBXQU5UIFRPIENPTlRJTlVFXG4iKTsKCQlzY2FuZigiJWQiLCZjaCk7Cgl9CgkKCXByaW50ZigiRW50ZXIgdGhlIGNob2ljZSBmb3IgdXIgaW5zZXJ0aW9uOlxuIik7CglzY2FuZigiJWQiLCZjaG9pY2UpOwoJc3dpdGNoKGNob2ljZSkKCXsKCQljYXNlIDE6CgkJCWJlZ2luaW5zZXJ0KCk7CgkJCWJyZWFrOwoJCWNhc2UgMjoKCQkJZW5kaW5zZXJ0KCk7CgkJCWJyZWFrOwoJCWNhc2UgMzoKCQkJc3BlY2lmaWNpbnNlcnQoKTsKCQkJYnJlYWs7CgkJY2FzZSA0OgoJCQliZWdpbmRlbGV0ZSgpOwoJCQlicmVhazsKCQljYXNlIDU6CgkJCWVuZGRlbGV0ZSgpOwoJCQlicmVhazsKCQljYXNlIDY6CgkJCXNwZWNpZmljZGVsZXRlKCk7CgkJCWJyZWFrOwoJCWRlZmF1bHQ6CgkJCXByaW50ZigiRW50ZXIgY29ycmVjdCBjaG9pY2UiKTsKCQkJYnJlYWs7Cgl9CglyZXR1cm4gMDsKfQp2b2lkIGJlZ2luaW5zZXJ0KCkKewoJc3RydWN0IE5vZGUgKm5ld25vZGU7CgluZXdub2RlPShzdHJ1Y3QgTm9kZSopbWFsbG9jKHNpemVvZihzdHJ1Y3QgTm9kZSkpOwoJcHJpbnRmKCJFbnRlciB0aGUgdmFsdWUgZm9yIHRoZSBuZXcgbm9kZTpcbiIpOwoJc2NhbmYoIiVkIiwmbmV3bm9kZS0+RGF0YSk7CgluZXdub2RlLT5OZXh0PWhlYWQ7CgloZWFkPW5ld25vZGU7Cgl0ZW1wPWhlYWQ7Cgl3aGlsZSh0ZW1wIT1OVUxMKQoJewogICAgCQlwcmludGYoIlxuJWQiLHRlbXAtPkRhdGEpOwoJCXRlbXA9dGVtcC0+TmV4dDsKCX0KfQp2b2lkIGVuZGluc2VydCgpCnsKCXN0cnVjdCBOb2RlICpuZXdub2RlOwoJbmV3bm9kZT0oc3RydWN0IE5vZGUqKW1hbGxvYyhzaXplb2Yoc3RydWN0IE5vZGUpKTsKCXByaW50ZigiRW50ZXIgdGhlIHZhbHVlIGZvciB0aGUgbmV3IG5vZGU6XG4iKTsKCXNjYW5mKCIlZCIsJm5ld25vZGUtPkRhdGEpOwoJbmV3bm9kZS0+TmV4dD1OVUxMOwoJdGVtcD1oZWFkOwoJd2hpbGUodGVtcC0+TmV4dCE9TlVMTCkKCXsKCQl0ZW1wPXRlbXAtPk5leHQ7Cgl9Cgl0ZW1wLT5OZXh0PW5ld25vZGU7Cgl0ZW1wPWhlYWQ7Cgl3aGlsZSh0ZW1wIT1OVUxMKQoJewogICAgCQlwcmludGYoIlxuJWQiLHRlbXAtPkRhdGEpOwoJCXRlbXA9dGVtcC0+TmV4dDsKCX0KfQp2b2lkIHNwZWNpZmljaW5zZXJ0KCkKewoJc3RydWN0IE5vZGUgKm5ld25vZGU7CglpbnQgcG9zLGk9MTsKCW5ld25vZGU9KHN0cnVjdCBOb2RlKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBOb2RlKSk7CglwcmludGYoIkVudGVyIHRoZSB2YWx1ZSBmb3IgdGhlIG5ldyBub2RlOlxuIik7CglzY2FuZigiJWQiLCZuZXdub2RlLT5EYXRhKTsKCW5ld25vZGUtPk5leHQ9TlVMTDsKCXByaW50ZigiRW50ZXIgdGhlIHBvc2l0aW9uIHRvIGluc2VydDpcbiIpOwoJc2NhbmYoIiVkIiwmcG9zKTsKCQoJdGVtcD1oZWFkOwoJd2hpbGUoaTxwb3MtMSkKCXsKCQl0ZW1wPXRlbXAtPk5leHQ7CgkJaSsrOwoJfQoJbmV3bm9kZS0+TmV4dD10ZW1wLT5OZXh0OwoJdGVtcC0+TmV4dD1uZXdub2RlOwoJdGVtcD1oZWFkOwoJd2hpbGUodGVtcCE9TlVMTCkKCXsKICAgIAkJcHJpbnRmKCJcbiVkIix0ZW1wLT5EYXRhKTsKCQl0ZW1wPXRlbXAtPk5leHQ7Cgl9Cn0Kdm9pZCBiZWdpbmRlbGV0ZSgpCnsKCXN0cnVjdCBOb2RlICpkaXNwbGF5OwoJdGVtcD1oZWFkOwoJaGVhZD1oZWFkLT5OZXh0OwoJZnJlZSh0ZW1wKTsKCWRpc3BsYXk9aGVhZDsKCXdoaWxlKGRpc3BsYXkhPU5VTEwpCgl7CiAgICAJCXByaW50ZigiXG4lZCIsZGlzcGxheS0+RGF0YSk7CgkJZGlzcGxheT1kaXNwbGF5LT5OZXh0OwoJfQp9CnZvaWQgZW5kZGVsZXRlKCkKewoJc3RydWN0IE5vZGUgKmRpc3BsYXksKnByZXY7Cgl0ZW1wPWhlYWQ7CglwcmV2PU5VTEw7Cgl3aGlsZSh0ZW1wLT5OZXh0IT1OVUxMKQoJewoJCXByZXY9dGVtcDsKCQl0ZW1wPXRlbXAtPk5leHQ7Cgl9CglwcmV2LT5OZXh0PU5VTEw7CglmcmVlKHRlbXApOwoJZGlzcGxheT1oZWFkOwoJd2hpbGUoZGlzcGxheSE9TlVMTCkKCXsKICAgIAkJcHJpbnRmKCJcbiVkIixkaXNwbGF5LT5EYXRhKTsKCQlkaXNwbGF5PWRpc3BsYXktPk5leHQ7Cgl9Cn0JCQp2b2lkIHNwZWNpZmljZGVsZXRlKCkKewoJc3RydWN0IE5vZGUgKmRlbE5vZGUsKmRpc3BsYXk7CglpbnQgcG9zLGk9MTsKCXByaW50ZigiRW50ZXIgdGhlIHBvc2l0aW9uIHRvIGRlbGV0ZTpcbiIpOwoJc2NhbmYoIiVkIiwmcG9zKTsJCgl0ZW1wPWhlYWQ7CgkKCXdoaWxlKGk8cG9zLTEpCgl7CgkJdGVtcD10ZW1wLT5OZXh0OwoJCWkrKzsKCX0KCWRlbE5vZGU9dGVtcC0+TmV4dDsKCXRlbXAtPk5leHQ9ZGVsTm9kZS0+TmV4dDsKCWZyZWUoZGVsTm9kZSk7CglkaXNwbGF5PWhlYWQ7Cgl3aGlsZShkaXNwbGF5IT1OVUxMKQoJewogICAgCQlwcmludGYoIlxuJWQiLGRpc3BsYXktPkRhdGEpOwoJCWRpc3BsYXk9ZGlzcGxheS0+TmV4dDsKCX0KCn0gICAgCg==