Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct node
- {
- int a;
- char s[20];
- struct node *next;
- struct node *prev;
- } node;
- node *head=NULL,*tail=NULL;
- void displaylst()
- {
- int ch;
- node *list=tail;
- if(head==NULL)
- {
- printf("NO Data Available!!\n\n ");
- }
- else
- {
- while(list!=NULL)
- {
- printf("\nName: %s\n",list->s);
- printf("Age: %d\n\n",list->a);
- list=list->prev;
- }
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press Any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void displayfrst()
- {
- int ch;
- node *list=head;
- if(head==NULL)
- {
- printf(" NO Data Available!!\n\n ");
- }
- else
- {
- while(list!=NULL)
- {
- printf("\nName: %s\n",list->s);
- printf("Age: %d\n\n",list->a);
- list=list->next;
- }
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press Any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void display()
- {
- int ch,n;
- printf(" 1.Display 1st To Last\n");
- printf(" 2.Display Last To 1st\n");
- printf("Choose Any Option:");
- scanf("%d",&n);
- switch(n)
- {
- case 1:
- {
- displayfrst();
- break;
- }
- case 2:
- {
- displaylst();
- break;
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void searchpos()
- {
- int ch,n;
- node *list=head;
- printf("Enter Your Position:");
- scanf("%d",&n);
- if(n==1)
- {
- printf("Name: %s\n",list->s);
- printf("Age: %d\n\n",list->a);
- }
- else
- {
- n=n-2;
- while(n!=0&&list->next!=NULL)
- {
- list=list->next;
- n--;
- }
- if(list->next==NULL)
- {
- printf("No Information Available!!\n\n");
- }
- else
- {
- printf("Name: %s\n",list->next->s);
- printf("Age: %d\n\n",list->next->a);
- }
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press Any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void searchval()
- {
- node *list=head;
- int ch,v;
- printf("Enter Your Age:");
- scanf("%d",&v);
- if(list->a==v)
- {
- printf("Name: %s\n",list->s);
- printf("Age: %d\n\n",list->a);
- }
- else
- {
- while(list->a!=v)
- {
- list=list->next;
- if(list==NULL)
- {
- break;
- }
- }
- if(list==NULL)
- {
- printf(" No Information Available!!\n\n");
- }
- else
- {
- printf("Name: %s\n",list->next->s);
- printf("Age: %d\n\n",list->next->a);
- }
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press Any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void search()
- {
- int ch;
- printf(" 1.Search By Value\n");
- printf(" 2.Search By Position\n");
- printf("Choose Any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- searchval();
- break;
- }
- case 2:
- {
- searchpos();
- break;
- }
- default :
- {
- printf("You Choose Wrong Option!!\n");
- menu();
- break;
- }
- }
- }
- void deletepos()
- {
- int n,ch;
- node *list=head,*temp;
- printf("please enter position:");
- scanf("%d",&n);
- if(head==NULL)
- {
- printf("NO DATA FOR DELETE\n");
- }
- else if(n==1)
- {
- if(head->next==NULL)
- {
- head=NULL;
- printf(" Data Deleted!!\n\n");
- }
- else
- {
- head=list->next;
- head->prev=NULL;
- free(list);
- }
- }
- else
- {
- n=n-2;
- while(n!=0&&list->next!=NULL)
- {
- list=list->next;
- n--;
- }
- if(list->next==NULL)
- {
- printf(" You Choose Wrong Position!!\a\n\n");
- }
- else if(list->next->next==NULL&&n==0)
- {
- temp=tail;
- tail=tail->prev;
- tail->next=NULL;
- free(temp);
- printf(" Block No: %d is Deleted!!\n\n",n);
- }
- else
- {
- temp=list->next;
- temp->next->prev=list;
- list->next=temp->next;
- free(temp);
- printf(" Block No: %d is Deleted!!\n\n",n);
- }
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press Any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void deleteval()
- {
- int n,ch;
- node *list=head,*temp=NULL;
- printf("please enter age:");
- scanf("%d",&n);
- if(head==NULL)
- {
- printf("No Information Available!!\n\n");
- }
- else if(list->a==n)
- {
- if(list->next==NULL)
- {
- head=NULL;
- tail=NULL;
- printf(" Data Deleted!!\n\n");
- free(list);
- }
- else
- {
- temp=list;
- list=list->next;
- list->prev=NULL;
- head=list;
- free(temp);
- printf(" Data Deleted!!\n\n");
- }
- }
- else
- {
- while(list->a!=n)
- {
- list=list->next;
- if(list==NULL)
- {
- break;
- }
- }
- if(list == NULL)
- {
- printf(" No Value Available\n\n");
- }
- else if(list->a==n&&list->next==NULL)
- {
- list=tail;
- temp=list;
- list->prev->next=temp->next;
- tail=list->prev;
- free(temp);
- printf(" Data Deleted!!\n\n");
- }
- else
- {
- temp=list;
- list->prev->next=temp->next;
- temp->next->prev=list->prev;
- free(temp);
- printf(" Data Deleted!!\n\n");
- }
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press Any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void Delete()
- {
- int ch,n;
- printf(" 1.Delete By Value\n");
- printf(" 2.Delete By Position\n");
- printf("Choose Any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- deleteval();
- break;
- }
- case 2:
- {
- deletepos();
- break;
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void addpos()
- {
- int p,ch;
- node *list=head;
- node *n=(node*)malloc(sizeof(node));
- n->prev=NULL;
- n->next=NULL;
- printf("\nName:");
- scanf(" %s[^\n]",n->s);
- printf("Age:");
- scanf("%d",&n->a);
- printf("Enter Your Position:");
- scanf("%d",&p);
- if(p==1)
- {
- if(head==NULL)
- {
- head=n;
- tail=n;
- }
- else
- {
- head->prev=n;
- n->next=head;
- head=n;
- }
- }
- else
- {
- p=p-2;
- while(p!=0&&list->next!=NULL)
- {
- list=list->next;
- p--;
- }
- if(list->next==NULL)
- {
- tail->next=n;
- n->prev=tail;
- tail=n;
- }
- else
- {
- n->next=list->next;
- list->next->prev=n;
- n->prev=list;
- list->next=n;
- }
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void addlast()
- {
- int ch;
- node *n=(node*)malloc(sizeof(node));
- n->prev=NULL;
- n->next=NULL;
- printf("\nName:");
- scanf(" %s[^\n]",n->s);
- printf("Age:");
- scanf("%d",&n->a);
- if(head==NULL&&tail==NULL)
- {
- head=n;
- tail=n;
- }
- else
- {
- tail->next=n;
- n->prev=tail;
- tail=n;
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void addfirst()
- {
- int ch;
- node *n=(node*)malloc(sizeof(node));
- n->prev=NULL;
- n->next=NULL;
- printf("\nName:");
- scanf(" %s[^\n]",n->s);
- printf("Age:");
- scanf("%d",&n->a);
- if(head==NULL&&tail==NULL)
- {
- head=n;
- tail=n;
- }
- else
- {
- head->prev=n;
- n->next=head;
- head=n;
- }
- printf(" 1.Menu\n");
- printf(" 2.Exit\n");
- printf("Press any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- menu();
- }
- case 2:
- {
- exit(0);
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void add()
- {
- int ch;
- printf(" 1.Add At First\n");
- printf(" 2.Add At Last\n");
- printf(" 3.Add By position\n");
- printf("Choose any Option:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- {
- addfirst();
- break;
- }
- case 2:
- {
- addlast();
- break;
- }
- case 3:
- {
- addpos();
- break;
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- void menu()
- {
- int n;
- printf("\n\n");
- printf(" 1.Add\n");
- printf(" 2.Search\n");
- printf(" 3.Delete\n");
- printf(" 4.Display\n");
- printf(" 5.Exit\n\n");
- printf("Choose any Option:");
- scanf("%d",&n);
- switch(n)
- {
- case 1:
- {
- add();
- break;
- }
- case 2:
- {
- search();
- break;
- }
- case 3:
- {
- Delete();
- break;
- }
- case 4:
- {
- display();
- break;
- }
- case 5:
- {
- exit(0);
- break;
- }
- default:
- {
- printf("You Choose Wrong Option!!\a\n\n");
- menu();
- break;
- }
- }
- }
- int main()
- {
- printf(" DOUBLY LINK LIST\n");
- printf(" ______________________\n");
- printf(" ______________________\n");
- menu();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement