Sunday, December 6, 2020

10

 CMSACOR05P: Data Structures Lab


10. WAP to scan a polynomial using linked list and add two polynomial.


PROGRAME :  WAP to scan a polynomial using linked list and add two polynomial…

 

 

PROGRAME CODE

#include<stdio.h>

#include<iostream>

using namespace std;

class node{

                public:

                                int degree;

                                int data;

                                node* link1;

                                node(){

                                                degree=0;

                                                data=0;

                                                link1=NULL;

                                }

};

class poly{

                public:

                                node* head;

                                poly(){

                                                head=NULL;

                                }

                                int check(int k){

                                                node* ptr=head;

                                                while(ptr!=NULL){

                                                                if(ptr->degree==k)

                                                                                return 1;

                                                                ptr=ptr->link1;

                                                }

                                                return 0;

                                }

                                void append(node* n){

                                                if(head==NULL)

                                                                head=n;

                                                else{

                                                                if(check(n->degree))

                                                                cout<<"THE DGREE IS ALREADY EXIST TRY WITH ANOTHER ....."<<endl;

                                                                else{

                                                                                node* ptr=head;

                                                                                while(ptr!=NULL){

                                                                                                if(ptr->link1==NULL){

                                                                                                                ptr->link1=n;

                                                                                                                break;

                                                                                                }

                                                                                                ptr=ptr->link1;

                                                                                }

                                                                }

                                                }

                                }

                                poly operator +(poly ob1){

                                                node* ptr=head;

                                                node* ptr1=head;

                                                node* ptr3=NULL;

                                                node* ptr4=head;

                                                node* ptr5=head;

                                                node* ptr6=head;

                                                cout<<"ADDITION SUCCESSFULL "<<endl;

                                                while(ptr1->link1!=NULL)

                                                                ptr1=ptr1->link1;

                                                ptr1->link1=ob1.head;

                                                for(ptr=head;ptr!=NULL;ptr=ptr->link1){

                                                                ptr3=ptr->link1;

                                                                while(ptr3!=NULL){

                                                                                if(ptr3->degree==ptr->degree){

                                                                                                ptr->data=ptr->data+ptr3->data;

                                                                                }

                                                                                ptr3=ptr3->link1;

                                                                }

                                                }

                                               

                                                while(ptr4!=NULL){

                                                                ptr6=ptr4;

                                                                ptr5=ptr4->link1;

                                                                while(ptr5!=NULL){

                                                                                if(ptr4->degree==ptr5->degree)

                                                                                                ptr6->link1=ptr5->link1;

                                                                                ptr6=ptr5;

                                                                                ptr5=ptr5->link1;

                                                                }

                                                                ptr4=ptr4->link1;

                                                } 

                                }  

                                void display(){

                                                if(head==NULL)

                                                                cout<<".........EMPTY............"<<endl;

                                                else{

                                                                node* ptr=head;

                                                                while(ptr!=NULL){

                                                                                cout<<"("<<ptr->data<<" x^"<<ptr->degree<<")";

                                                                                if(ptr->link1!=NULL)

                                                                                                cout<<" + ";

                                                                                ptr=ptr->link1;

                                                                }

                                                                cout<<"= 0 ";

                                                }

                                }

};

int main(){

                int opt=0;

                poly ob;

                poly ob1;

                do{

                                cout<<"\nPRESS 0 TO EXIT...."<<endl;

                                cout<<"PRESS 1 TO APPEND NODE FOR 1st POLYNOMIAL..........."<<endl;

                                cout<<"PRESS 2 TO APPEND NODE FOR 2nd POLYNOMIAL..........."<<endl;

                                cout<<"PRESS 3 TO DISPLAY 1st POLYNOMIAL......"<<endl;

                                cout<<"PRESS 4 TO DISPLAY 2nd POLYNOMIAL......"<<endl;

                                cout<<"PRESS 5 TO ADD TWO POLYNOMIALS........"<<endl;

                                cout<<"PRESS 6 TO DISPLAY THE RESULT........"<<endl;  

                                cin>>opt;

                                node *n=new node();

                                switch(opt){

                                                case 0:

                                                                break;

                                                case 1:

                                                                cout<<"ENTER THE DEGREE....."<<endl;

                                                                cin>>n->degree;

                                                                cout<<"ENTER THE DATA......"<<endl;

                                                                cin>>n->data;

                                                                ob.append(n);

                                                                break;

                                                case 2:

                                                                cout<<"ENTER THE DEGREE....."<<endl;

                                                                cin>>n->degree;

                                                                cout<<"ENTER THE DATA......"<<endl;

                                                                cin>>n->data;

                                                                ob1.append(n);

                                                                break;

                                                case 3:

                                                                ob.display();

                                                                break;

                                                case 4:

                                                                ob1.display();

                                                                break;

                                                case 5:

                                                                ob+ob1;

                                                                break;

                                                case 6:

                                                                ob.display();

                                                                break;                                                  

                                                default:

                                                                cout<<".........ERROR........"<<endl;

                                                                break;

                                }

                }while(opt!=0);

                return 0;

}


8

 CMSACOR05P: Data Structures Lab

8. Perform Queues operations using Circular Array implementation. Use Templates.

CMSACOR05P: Data Structures Lab

 CMSACOR05P: Data Structures Lab


9. Create and perform different operations on Double-ended Queues using Linked List implementation.


PROGRAME CODE

#include<stdio.h>

#include<iostream>

using namespace std;

class node{

          public:

                   int key;

                   int data;

                   node* link1;

                   node(){

                             key=0;

                             data=0;

                             link1=NULL;

                   }

};

class de_queue{

          public:

                   node* head;

                   de_queue(){

                             head=NULL;

                   }

                   int check(int n){

                             node* ptr=head;

                             while(ptr!=NULL){

                                      if(ptr->key==n)

                                                return 1;

                                      ptr=ptr->link1;

                             }

                             return 0;

                   }

                   void queue(node* n){

                             if(head==NULL)

                                      head=n;

                             else{

                                      if(check(n->key))

                                                cout<<"THIS KEY IS ALREADY EXIST...TRY WITH ANOTHER KEY .."<<endl;

                                      else{

                                                node* ptr=head;

                                                while(ptr!=NULL){

                                                          if(ptr->link1==NULL){

                                                                   ptr->link1=n;

                                                                   break;

                                                          }

                                                          ptr=ptr->link1;

                                                }

                                      }

                             }                          

                   }

                   void stenqueue(node* n){

                             if(head==NULL)

                                      head=n;

                             else{

                                      if(check(n->key))

                                                cout<<"THIS KEY IS ALREADY EXIST...TRY WITH ANOTHER KEY .."<<endl;

                                      else{

                                                n->link1=head;

                                                head=n;

                                                cout<<"INSERT A DATA SUCCESSFULLY FROM FRONT...."<<endl;

                                      }

                             }

                   }

                   void lastenqueu(node* n){

                             if(head==NULL)

                                      head=n;

                             else{

                                      if(check(n->key))

                                                cout<<"THIS KEY IS ALREADY EXIST...TRY WITH ANOTHER KEY .."<<endl;

                                      else{

                                                node* ptr=head;

                                                while(ptr!=NULL){

                                                          if(ptr->link1==NULL){

                                                                   ptr->link1=n;

                                                                   break;

                                                          }

                                                          ptr=ptr->link1;

                                                }

                                                cout<<"INSERT DATA SUCCESSFULLY FROM REAR ...."<<endl;

                                      }

                             }                          

                   }

                   void stdqueue(){

                             if(head==NULL)

                                      cout<<"THE QUEUE IS EMPTY ...."<<endl;

                             else{

                                      head=head->link1;

                                      cout<<"DELETE AN ELEMENT SUCCESSFULLY FROM FRONT ...."<<endl;

                             }

                   }

                   void lastdqueue(){

                             if(head==NULL)

                                      cout<<"THE QUEUE IS EMPTY........."<<endl;

                             else{

                                      node* ptr=head;

                                      node* ptr1=NULL;

                                      while(ptr->link1!=NULL){

                                                ptr1=ptr;

                                                ptr=ptr->link1;

                                      }

                                      ptr1->link1=NULL;

                                      cout<<"DELETE AN ELEMENT SUCCESSFULLY FROM REAR..."<<endl;

                             }

                   } 

                   void display(){

                             if(head==NULL)

                                      cout<<"THE QUEUE IS EMPTY ...."<<endl;

                             else{

                                      node* ptr=head;

                                      while(ptr!=NULL){

                                                cout<<"("<<ptr->key<<","<<ptr->data<<")->";

                                                ptr=ptr->link1;

                                      }

                             }

                   }

};

int main(){

          de_queue ob;

          int opt=0;

          do{

                   cout<<"\nPRESS 0 TO EXIT ...."<<endl;

                   cout<<"PRESS 1 TO INSERT DAAT IN QUEUE ....."<<endl;

                   cout<<"PRESS 2 TO ENQUEUE AT FIRST ...."<<endl;

                   cout<<"PRESS 3 TO ENQUEUE AT LAST......"<<endl;

                   cout<<"PRESS 4 TO DEQUEUE AT FIRST......"<<endl;

                    cout<<"PRESS 5 TO DEQUEUE AT LAST......"<<endl;

                   cout<<"PRESS 6 TO DISPLAY......"<<endl;

                   cin>>opt;

                   node *n=new node();

                   switch(opt){

                             case 0:

                                      break;

                             case 1:

                                      cout<<"ENTER THE KEY OF THE DATA ->"<<endl;

                                      cin>>n->key;

                                      cout<<"ENTER THE DATA ->"<<endl;

                                      cin>>n->data;

                                      ob.queue(n);

                                      break;

                             case 2:

                                      cout<<"ENTER THE KEY OF THE DATA ->"<<endl;

                                      cin>>n->key;

                                      cout<<"ENTER THE DATA ->"<<endl;

                                      cin>>n->data;

                                      ob.stenqueue(n);

                                      break;

                             case 3:

                                      cout<<"ENTER THE KEY OF THE DATA ->"<<endl;

                                      cin>>n->key;

                                      cout<<"ENTER THE DATA ->"<<endl;

                                      cin>>n->data;

                                      ob.lastenqueu(n);

                                      break;

                             case 4:

                                      ob.stdqueue();

                                      break;

                             case 5:

                                      ob.lastdqueue();

                                      break;

                             case 6:

                                      ob.display();

                                      break;

                             default:

                                      cout<<"...............ERROR..............."<<endl;

                                      break;

                   }

                  

          }while(opt!=0);

          return 0;

}