text: #include <iostream.h>
  #include <iomanip.h>
  #include <conio.h>
  
  struct poly{
      int coeff;
      int pow;
      poly *next;
  };
  
  class add2poly
  {
     poly *poly1, *poly2, *poly3;
     public:
     add2poly(){poly1=poly2=poly3=NULL;}
     void addpoly();
     void display();
  };
  
  void add2poly :: addpoly(){
        int i,p;
        poly *newl=NULL,*end=NULL;
        cout<<"Enter highest power for x\n";
        cin>>p;
      //Read first poly
        cout<<"\nFirst Polynomial\n";
        for(i=p;i>=0;i--)
        {
        newl=new poly;
        newl->pow=p;
        cout<<"Enter Co-efficient for degree"<<i<<"::  ";
        cin>>newl->coeff;
        newl->next=NULL;
        if(poly1==NULL)
           poly1=newl;
        else
           end->next=newl;
        end=newl;
        }
  
      //Read Second poly
        cout<<"\n\nSecond Polynomial\n";
        end=NULL;
        for(i=p;i>=0;i--)
        {
        newl=new poly;
        newl->pow=p;
        cout<<"Enter Co-efficient for degree"<<i<<"::  ";
        cin>>newl->coeff;
        newl->next=NULL;
        if(poly2==NULL)
           poly2=newl;
        else
           end->next=newl;
        end=newl;
        }
  
        //Addition Logic
        poly *p1=poly1,*p2=poly2;
        end=NULL;
        while(p1 !=NULL && p2!=NULL){
          if(p1->pow == p2->pow){
              newl=new poly;
              newl->pow=p--;
              newl->coeff=p1->coeff + p2->coeff;
              newl->next=NULL;
              if(poly3==NULL)
                 poly3=newl;
              else
                 end->next=newl;
              end=newl;
          }
          p1=p1->next;
          p2=p2->next;
        }
  }
  
  void add2poly :: display(){
     poly *t=poly3;
     cout<<"\n\nAnswer after addition is : ";
     while(t!=NULL){
        cout.setf(ios::showpos);
        cout<<t->coeff;
        cout.unsetf(ios::showpos);
        cout<<"X"<<t->pow;
        t=t->next;
     }
  }
  
  
  void main(){
      clrscr();
      add2poly obj;
      obj.addpoly();
      obj.display();
      getch();
  }
  