- Enter 2 to Display
- Enter 3 to delete node from start
- Enter 4 to delete node from last
- Enter 5 to insert node at start
- Enter 6 to insert node at last
- Enter 7 to insert node after specific node
#include<iostream> #include<conio.h> using namespace std; struct node { int data; node *right_link; node *left_link; }*head=NULL; void create() { int info; node *new1=head; node *end=head; cout<<"Enter -5 to terminate link list:"<<endl; while(info!=-5) { cout<<"Enter you data : "; cin>>info; new1=new node; new1->data=info; if(head==NULL) { head=new1; new1->left_link=NULL; new1->right_link=NULL; } else { end->right_link=new1; new1->left_link=end; new1->right_link=NULL; } end=new1; } } void display() { node *p=head; if(head==NULL or head->right_link==NULL) cout<<"link list is empty"<<endl; else { cout<<" \n\nYour link list is : "; while(p->right_link!=NULL) { cout<<" "<<p->data; p=p->right_link; }}} void dfhead() { node *p=head; if(head==NULL or head->right_link==NULL) cout<<"link list is empty"<<endl; else { head=p->right_link; head->left_link=NULL; cout<<"Your desired node gets deleted"<<endl; delete(p); }} void dflast() { node *p=head; if(head==NULL or head->right_link==NULL) cout<<"link list is empty"<<endl; else { while(p->right_link!=NULL) { p=p->right_link; } p->left_link->right_link=NULL; cout<<"Your desired node gets deleted"<<endl; delete(p); }} void iafirst() { int info; if(head==NULL) { cout<<"Node created Enter node data: "; cin>>info; node *new1=new node; new1->data=info; new1->left_link=NULL; new1->right_link=NULL; head=new1; cout<<"Process successfull"; } else { node *new1=new node; head->left_link=new1; new1->right_link=head; new1->left_link=NULL; head=new1; cout<<"Node created Enter node data: "; cin>>info; head->data=info; cout<<"Process successfull"; }} void ialast() { int n; node *p=head; while(p->right_link!=NULL) { p=p->right_link; } node *new2=new node; new2->right_link=NULL; new2->left_link=p; p->right_link=new2; cout<<"Node created Enter node data: "; cin>>n; new2->data=n; cout<<"Process successfull"; } void iainter() { int c,n,count=1; node *p=head; cout<<"Enter node num after which you want another node:"; cin>>c; while(count!=c) { p=p->right_link; count++; } node *new1=new node; new1->right_link=p->right_link; new1->left_link=p; p->right_link->left_link=new1; p->right_link=new1; cout<<"Node created Enter node data: "; cin>>n; new1->data=n; cout<<"Process successfull"; } main() { cout<<"\t***Welcome to Double linked list***"<<endl; int choice; while(choice!=99) { cout<<"\n\nEnter 1 to create "<<endl; cout<<"Enter 2 to Display"<<endl; cout<<"Enter 3 to delete node from start"<<endl; cout<<"Enter 4 to delete node from last"<<endl; cout<<"Enter 5 to insert node at start"<<endl; cout<<"Enter 6 to insert node at last"<<endl; cout<<"Enter 7 to insert node after intermidate"<<endl; cin>>choice; switch(choice) { case 1: create(); break; case 2: display(); break; case 3: dfhead(); break; case 4: dflast(); break; case 5: iafirst(); break; case 6: ialast(); break; case 7: iainter(); break; default: cout<<"wrong input"<<endl; } } getch(); }
Output of Program:
0 Comments