Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- menu();
- add();
- insert_at_first();
- insert_at_last();
- insert_at_nth();
- Delete();
- delete_by_pos();
- delete_by_value();
- search();
- search_by_pos();
- search_by_value();
- display();
- typedef struct node
- {
- int a;
- char ch[30];
- struct node *next;
- }node;
- node *head=NULL, *list=NULL;
- int insert_at_first()
- {
- node *N=(node*)malloc(sizeof(node));
- printf("Name: \n");
- scanf(" %[^\n]", N->ch);
- printf("Roll: \n");
- printf(" %d\n", &N->a);
- if(head=NULL)
- {
- head=N;
- N->next=NULL;
- }
- else
- {
- N->next=head;
- head=N;
- }
- printf("\n1. Add\n");
- printf("2. Menu\n");
- printf("3. Exit\n");
- printf("Choose an option.\n");
- int b;
- scanf("%d", &b);
- switch(b)
- {
- case 1:
- {
- add();
- break;
- }
- case 2:
- {
- menu();
- break;
- }
- case 3:
- {
- exit(0);
- break;
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- menu();
- }
- }
- }
- int insert_at_last()
- {
- node *N=(node*)malloc(sizeof(node));
- printf("Name: \n");
- scanf(" %[^\n]", N->ch);
- printf("Roll: \n");
- printf(" %d\n", &N->a);
- node *list=head;
- if(head==NULL)
- {
- head=N;
- N->next=NULL;
- }
- else
- {
- while(list->next!=NULL)
- {
- list=list->next;
- }
- N->next=list->next;
- list->next=N;
- }
- printf("\n1. Add\n");
- printf("2. Menu\n");
- printf("3. Exit\n");
- printf("Choose an option.\n");
- int c;
- scanf("%d", &c);
- switch(c)
- {
- case 1:
- {
- add();
- break;
- }
- case 2:
- {
- menu();
- break;
- }
- case 3:
- {
- exit(0);
- break;
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- menu();
- }
- }
- }
- int insert_at_nth()
- {
- node *N=(node*)malloc(sizeof(node));
- printf("Name: \n");
- scanf(" %[^\n]", N->ch);
- printf("Roll: \n");
- printf(" %d\n", &N->a);
- node *list=head;
- int n;
- printf("Enter the Position:\n");
- scanf("%d", &n);
- if(n==1)
- {
- N->next=head;
- head=N;
- }
- else
- {
- n=n-2;
- while(n!=0 && list->next!=NULL)
- {
- list=list->next;
- n--;
- }
- N->next=list->next;
- list->next=N;
- }
- printf("\n1. Add\n");
- printf("2. Menu\n");
- printf("3. Exit\n");
- printf("Choose an option.\n");
- int d;
- scanf("%d", &d);
- switch(d)
- {
- case 1:
- {
- add();
- break;
- }
- case 2:
- {
- menu();
- break;
- }
- case 3:
- {
- exit(0);
- break;
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- menu();
- }
- }
- }
- int add()
- {
- printf("\n1. Add at First.\n");
- printf("2. Add at Last\n");
- printf("3. Add at Nth Position\n");
- printf("4. Go to Back\n");
- int e;
- scanf("%d", &e);
- switch(e)
- {
- case 1:
- {
- insert_at_first();
- break;
- }
- case 2:
- {
- insert_at_last();
- break;
- }
- case 3:
- {
- insert_at_nth();
- break;
- }
- case 4:
- {
- menu();
- break;
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- add();
- }
- }
- }
- int delete_by_pos()
- {
- int n;
- printf("Enter the Position:\n");
- scanf("%d", &n);
- node *list=head, *temp;
- if(n==1)
- {
- head=list->next;
- free(list);
- }
- else
- {
- n=n-2;
- while(n!=0)
- {
- list=list->next;
- n--;
- }
- temp=list->next;
- list->next=temp->next;
- free(temp);
- }
- printf("1.\n\nMenu\n");
- printf("2.Exit\n");
- printf("Choose a Option:");
- int f;
- scanf("%d",&f);
- switch(f)
- {
- case 1:
- {
- menu();
- break;
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- menu();
- }
- }
- }
- int delete_by_value()
- {
- int n;
- printf("Enter the value:\n");
- scanf("%d", &n);
- node *list=head;
- if(list->a==n)
- {
- head=list->next;
- free(list);
- }
- else
- {
- node *list=head, *temp;
- while(list->next->a!=n)
- {
- list=list->next;
- }
- temp=list->next;
- list->next=temp->next;
- free(temp);
- }
- printf("1.\n\nMenu\n");
- printf("2.Exit\n");
- printf("Choose a Option:");
- int g;
- scanf("%d",&g);
- switch(g)
- {
- case 1:
- {
- menu();
- break;
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- menu();
- }
- }
- }
- int Delete()
- {
- printf("\n1. Delete by Position\n");
- printf("2. Delete by Value\n");
- printf("3. Go to Back\n");
- int h;
- scanf("%d", &h);
- switch(h)
- {
- case 1:
- {
- delete_by_pos();
- break;
- }
- case 2:
- {
- delete_by_value();
- break;
- }
- case 3:
- {
- menu();
- break;
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- Delete();
- }
- }
- }
- int search_by_pos()
- {
- int n;
- printf("Enter the Position:\n");
- scanf("%d", &n);
- node *list=head;
- if(n==1)
- {
- printf("\nName: %s\n", list->ch);
- printf("Roll: %d\n", &list->a);
- }
- else
- {
- n=n-2;
- while(n--)
- {
- list=list->next;
- }
- printf("\nName: %s\n", list->next->ch);
- printf("Roll: %d\n", &list->next->a);
- }
- printf("\n1. Menu\n");
- printf("2. Exit\n");
- int i;
- scanf("%d",&i);
- switch(i)
- {
- case 1:
- {
- menu();
- break;
- }
- case 2:
- {
- exit(0);
- break;
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- menu();
- }
- }
- }
- int search_by_value()
- {
- int n;
- printf("Enter the Value:\n");
- scanf("%d", &n);
- node *list=head;
- while(1)
- {
- if(list->a==n)
- {
- printf("\nName: %s\n", list->ch);
- printf("Roll: %d\n", &list->a);
- break;
- }
- list=list->next;
- }
- printf("\n1. Menu\n");
- printf("2. Exit\n");
- int j;
- scanf("%d",&j);
- switch(j)
- {
- case 1:
- {
- menu();
- break;
- }
- case 2:
- {
- exit(0);
- break;
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- menu();
- }
- }
- }
- int search()
- {
- printf("\n1. Search by Position\n");
- printf("2. Search by Value\n");
- printf("3. Go to Back\n");
- int k;
- scanf("%d", &k);
- switch(k)
- {
- case 1:
- {
- search_by_pos();
- break;
- }
- case 2:
- {
- search_by_value();
- break;
- }
- case 3:
- {
- menu();
- break;
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- search();
- }
- }
- }
- int display()
- {
- node*list=head;
- if(head==NULL)
- {
- printf("\nList is empty!!\n");
- printf("Add data first!!\n");
- printf("1. Menu\n");
- printf("2. Exit\n");
- printf("Choose any option:\n");
- int p;
- scanf("%d",&p);
- switch(p)
- {
- case 1:
- {
- menu();
- break;
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- display();
- }
- }
- }
- else
- {
- while(list!=NULL)
- {
- printf("\nName: %s\n",list->ch);
- printf("Roll: %d\n",list->a);
- list=list->next;
- }
- printf("\n1. Menu\n");
- printf("2. Exit\n");
- printf("Choose any option:\n");
- int p;
- scanf("%d",&p);
- switch(p)
- {
- case 1:
- {
- menu();
- break;
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You've chosen a wrong option!! Choose the correct one:\n");
- display();
- }
- }
- }
- }
- int menu()
- {
- printf("1. Add\n");
- printf("2. Delete\n");
- printf("3. Search\n");
- printf("4. Display\n");
- printf("5. Exit\n");
- printf("Choose any option\n");
- int o;
- scanf("%d", &o);
- switch(o)
- {
- case 1:
- {
- add();
- break;
- }
- case 2:
- {
- Delete();
- break;
- }
- case 3:
- {
- search();
- break;
- }
- case 4:
- {
- display();
- break;
- }
- case 5:
- {
- exit(0);
- break;
- }
- default:
- {
- printf("CHOOSE A CORRECT OPTION\n");
- menu();
- }
- }
- }
- int main()
- {
- printf("..........!!Singly Link list!!........\n");
- menu();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement