#include<stdio.h> #include<conio.h> #include<malloc.h> struct link { int data; struct link *next; };struct link *nw, *head, *tail, *temp1, *temp2; void insert_begin(); void insert_middle(); void insert_end(); void delete_begin(); void delete_middle(); void delete_end(); void display(); void main() { int item,ch; do { clrscr(); printf("1. Insert Node of Beginning : \n2. Insert Node of middle any Posistion\n3. Insert Node of Ending : \n4. Delete Node of Beginning\n5. Delete Node of middle any position\n6. Delete Node of Ending\n7. Disple\n8. Exit\n\n "); printf("Enter Your Choice : "); scanf("%d",&ch); switch(ch) { case 1: insert_begin(); break; case 2: insert_middle(); break; case 3: insert_end(); break; case 4: delete_begin(); break; case 5: delete_middle(); break; case 6: delete_end(); break; case 7: display(); break; case 8: printf("Thank U"); break; } }while(ch != 8); } /////////////////////////////////////////// void insert_begin() { int item; clrscr(); nw=(struct link *)malloc(sizeof (struct link)); printf("Enter the Data of Node : ",&item); scanf("%d",&item); nw -> data = item; nw -> next = head; head = nw; } void insert_middle() { int item,pos,i; clrscr(); temp1=head; temp2=head; printf("Enter the positon : "); scanf("%d",&pos); printf("Enter the Data of Node : "); scanf("%d",&item); for(i=1;i<pos-1;i++) { temp1 = temp1->next; } temp2=temp1->next; nw = (struct link *)malloc(sizeof (struct link)); nw -> data = item; nw -> next = temp2; temp1 -> next = nw; printf("node enerd "); getch(); } void insert_end() { int item; clrscr(); temp1 = head; printf("Enter Item : "); scanf("%d",&item); while(temp1->next != NULL) { temp1 = temp1 -> next; } nw = (struct link *)malloc(sizeof (struct link)); nw -> data = item; temp1 -> next = nw; nw -> next = NULL; } void delete_begin() { struct link *temp; clrscr(); temp = head; head = head->next; printf("%d Node is Deletion",temp->data); free(temp); getch(); } void delete_middle() { int pos,i; clrscr(); printf("Enter Position : "); scanf("%d",&pos); temp1 = head; temp2 = head; for(i=1;i<pos-1;i++) { temp1 = temp1 -> next; } temp2 = temp1 -> next; temp1 -> next = temp2 -> next; free(temp2); } void delete_end() { clrscr(); temp1 = head; while(temp1->next != NULL) { temp2=temp1; temp1 = temp1 -> next; } printf("%d Node is Delete.",temp1->data); free(temp2->next); temp2->next = NULL; getch(); } void display() { struct link *temp; clrscr(); temp = head; while(temp != NULL) { printf("\n\t%d",temp->data); temp = temp -> next; } getch(); }