Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- struct node
- {
- int info;
- node *link;
- };
- node *root=NULL;
- void create(int num)
- {
- if(root==NULL)
- {
- root=new node();
- root->info=num;
- root->link=NULL;
- }
- else
- {
- node *srt=root;
- while(srt->link!=NULL)
- {
- srt=srt->link;
- }
- node *ptr;
- ptr=new node();
- ptr->info=num;
- ptr->link=NULL;
- srt->link=ptr;
- }
- }
- void traverse()
- {
- node *srt;
- srt=root;
- while(srt->link!=NULL)
- {
- cout<<srt->info<<endl;
- srt=srt->link;
- }
- cout<<srt->info<<endl;
- }
- void first_insert()
- {
- int item;
- cout<<"Enter "<<endl;
- cin>>item;
- node *ptr;
- ptr=new node();
- ptr->info=item;
- ptr->link=root;
- root=ptr;
- }
- void last_insert()
- {
- cout<<"Enter"<<endl;
- node *ptr,*srt;
- int item;
- cin>>item;
- ptr=new node();
- ptr->info=item;
- ptr->link=NULL;
- for(srt=root; ; )
- {
- if(srt->link==NULL)
- {
- srt->link=ptr;
- break;
- }
- else
- {
- srt=srt->link;
- }
- }
- }
- void insert_before()
- {
- cout<<"Enter"<<endl;
- int item,num;
- cin>>item;
- cin>>num;
- node *srt,*temp;
- for(srt=root; ;)
- {
- if(srt->info==item)
- {
- if(srt==root)
- {
- first_insert();
- break;
- }
- else
- {
- node *ptr=new node();
- ptr->info=num;
- ptr->link=srt;
- temp->link=ptr;
- break;
- }
- }
- else
- {
- //srt=srt->link;
- temp=srt;
- srt=srt->link;
- }
- }
- }
- void insert_after()
- {
- int item,num;
- cin>>item>>num;
- node *srt,*temp;
- for(srt==root; ;)
- {
- if(srt->info==item)
- {
- if(srt->link==NULL)
- {
- last_insert();
- break;
- }
- else
- {
- node *ptr;
- ptr=new node();
- ptr->info=num;
- ptr->link=srt->link;
- srt->link=ptr;
- break;
- }
- }
- else
- {
- srt=srt->link;
- temp=srt;
- }
- }
- }
- void first_delete()
- {
- node *srt=root;
- root=srt->link;
- }
- void last_delete()
- {
- node *srt,*temp;
- for(srt=root; ; )
- {
- if(srt->link==NULL)
- {
- temp->link=NULL;
- break;
- }
- else
- {
- temp=srt;
- srt=srt->link;
- }
- }
- }
- void delete_given()
- {
- int item;
- cin>>item;
- node *srt,*ptr,*temp;
- for(srt=root; ; )
- {
- if(srt->info==item)
- {
- if(srt==root)
- {
- first_delete();
- }
- else if(srt->link==NULL)
- {
- last_delete();
- }
- else
- {
- temp->link=srt->link;
- break;
- }
- }
- else
- {
- temp=srt;
- srt=srt->link;
- //ptr=srt;
- }
- }
- }
- void delete_after()
- {
- int item;
- cin>>item;
- node *srt,*temp;
- for(srt=root; ;)
- {
- if(srt->info==item)
- {
- temp=srt->link;
- if(temp->link==NULL)
- {
- last_delete();
- break;
- }
- else
- {
- srt->link=temp->link;
- break;
- }
- }
- else
- {
- srt=srt->link;
- }
- }
- }
- void delete_before()
- {
- int item;
- cin>>item;
- node *srt,*temp=NULL,*ptr=NULL;
- for(srt=root; ; )
- {
- if(srt->info==item)
- {
- if(temp==root)
- {
- first_delete();
- }
- else
- {
- temp->link=srt;
- break;
- }
- }
- else
- {
- temp=srt;
- srt=srt->link;
- }
- }
- }
- int main()
- {
- int n;
- cin>>n;
- int a[n+5];
- for(int i=0;i<n;i++)
- {
- cin>>a[i];
- create(a[i]);
- }
- //first_insert();
- traverse();
- //last_insert();
- //insert_before ();
- //insert_after();
- //first_delete();
- //last_delete();
- // delete_given();
- //delete_after();
- // delete_before();
- traverse();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment