Advertisement
Eternoseeker

Polynomial

Nov 23rd, 2022 (edited)
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | Source Code | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. struct Node{
  5.     int pow;
  6.     int coeff;
  7.  
  8.     Node* next;
  9. };
  10.  
  11. class Poly{
  12.     Node* head;
  13. public:
  14.     Poly(){
  15.         head=NULL;
  16.     }
  17.  
  18.     void display(){
  19.         Node *t = head;
  20.         while(t!=NULL){
  21.             cout<<t->coeff<<"x^"<<t->pow<< " + ";
  22.             t = t->next;
  23.         }
  24.     }
  25.  
  26.     void insertAtEnd(int p,int c){
  27.         Node* nn = new Node();
  28.         nn->pow=p;
  29.         nn->coeff = c;
  30.         nn->next = NULL;
  31.  
  32.         if(head==NULL)
  33.             head = nn;
  34.         else{
  35.             Node * t = head;
  36.             while(t->next!=NULL)
  37.                 t = t->next;
  38.             t->next = nn;
  39.         }
  40.     }
  41.     void add(Poly* obj2, Poly* result){
  42.         Node* t1 = this->head;
  43.         Node* t2 = obj2->head;
  44.         while(t1 && t2){
  45.                 if(t1->pow == t2->pow){
  46.                     result->insertAtEnd(t1->pow, (t1->coeff+t2->coeff));
  47.  
  48.                     t1 = t1->next;
  49.                     t2 = t2->next;
  50.                 }
  51.                 else if(t1->pow > t2->pow){
  52.                     result->insertAtEnd(t1->pow, t1->coeff);
  53.                     t1 = t1->next;
  54.  
  55.                 }
  56.                 else if(t2->pow > t1->pow){
  57.  
  58.                     result->insertAtEnd(t2->pow, t2->coeff);
  59.                     t2 = t2->next;
  60.  
  61.                 }
  62.  
  63.         }
  64.         while(t1){
  65.             result->insertAtEnd(t1->pow,t1->coeff);
  66.             t1 = t1->next;
  67.         }
  68.         while(t2){
  69.             result->insertAtEnd(t2->pow,t2->coeff);
  70.             t2 = t2->next;
  71.         }
  72.  
  73.  
  74.         return;
  75.     }
  76. };
  77.  
  78. int main(){
  79.     Poly obj1,obj2;
  80.     Poly result;
  81.  
  82.     int n, coeff,pow;
  83.     cout<<" How many terms in Poly 1? "<<endl;
  84.     cin>>n;
  85.     for(int i=0;i<n;i++){
  86.         cin>>coeff;
  87.         cin>>pow;
  88.         obj1.insertAtEnd(pow,coeff);
  89.     }
  90.  
  91.     cout<<" How many terms in Poly 2? "<<endl;
  92.     cin>>n;
  93.     for(int i=0;i<n;i++){
  94.         cin>>coeff;
  95.         cin>>pow;
  96.         obj2.insertAtEnd(pow,coeff);
  97.     }
  98.  
  99.     obj1.display();
  100.     cout<<endl;
  101.     obj2.display();
  102.     cout<<endl;
  103.     obj1.add(&obj2,&result);
  104.     cout<<"Result "<<endl;
  105.     result.display();
  106.     cout<<endl;
  107.  
  108.     return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement