Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- class node
- {
- public:
- int info;
- node *forw,*backw;
- };
- node *first=NULL,*last,*temp;
- void creat_list(int data)
- {
- node *srt;
- srt=new node();
- srt->info=data;
- srt->forw=NULL;
- srt->backw=NULL;
- if(first==NULL)
- {
- first=srt;
- temp=srt;
- temp->backw=NULL;
- }
- else
- {
- temp->forw=srt;
- srt->backw=temp;
- srt->forw=NULL;
- temp=srt;
- }
- last=srt;
- }
- void insert_1st(int data)
- {
- node *srt;
- srt=new node();
- srt->info=data;
- srt->forw=first;
- first->backw=srt;
- first=srt;
- }
- void insert_last(int data)
- {
- node *srt;
- srt=new node();
- srt->info=data;
- last->forw=srt;
- srt->backw=last;
- last=srt;
- }
- void insert_after(int item,int data)
- {
- node *ptr,*srt;
- ptr=new node();
- ptr->info=data;
- srt=first;
- while(srt!=last)
- {
- if(srt->info==item)
- {
- srt->forw->backw=ptr;
- ptr->backw=srt;
- ptr->forw=srt->forw;
- srt->forw=ptr;
- break;
- }else{
- srt=srt->forw;
- }
- }
- if(last->info==item)
- {
- insert_last(data);
- }
- }
- void insert_before(int item,int data)
- {
- node *ptr,*srt;
- ptr=new node();
- ptr->info=data;
- srt=first;
- temp=srt->forw;
- if(first->info==item)
- {
- insert_1st(data);
- }
- else{ while(srt!=last)
- {
- if(temp->info==item)
- {
- ptr->backw=srt;
- ptr->forw=temp;
- temp->backw=ptr;
- srt->forw=ptr;
- break;
- }else{
- srt=srt->forw;
- temp=srt->forw;
- }
- }
- }
- }
- void forward_traverse()
- {
- node *srt;
- srt=first;
- while(srt!=last)
- {
- cout<<srt->info<<" ";
- srt=srt->forw;
- }
- cout<<srt->info<<endl;
- }
- void backward_traverse()
- {
- node *srt;
- srt=last;
- while(srt!=first)
- {
- cout<<srt->info<<" ";
- srt=srt->backw;
- }
- cout<<srt->info<<endl;
- }
- int main()
- {
- int n,data;
- cout<<"Enter the no of element"<<endl;
- cin>>n;
- for(int i=0; i<n; i++)
- {
- cin>>data;
- creat_list(data);
- }
- cout<<"after forward traversing"<<endl;
- forward_traverse();
- cout<<endl;
- cout<<"after backward traversing"<<endl;
- backward_traverse();
- cout<<endl;
- int x,y;
- cout<<"Enter the element"<<endl;
- cin>>x;
- insert_1st(x);
- cout<<"after inserting at first"<<endl;
- forward_traverse();
- cout<<endl;
- cout<<"Enter the element"<<endl;
- cin>>x;
- insert_last(x);
- cout<<"after inserting at last"<<endl;
- forward_traverse();
- cout<<endl;
- cout<<"Enter the position & element"<<endl;
- cin>>x>>y;
- insert_before(x,y);
- cout<<"after inserting "<<endl;
- forward_traverse();
- cout<<endl;
- cout<<"Enter the position & element"<<endl;
- cin>>x>>y;
- insert_after(x,y);
- cout<<"after inserting "<<endl;
- forward_traverse();
- cout<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement