0
#include<iostream>
using namespace std;
class polynomial
{
    private:

         struct p
         {
             int degree;
             float coefficient;
             p *link;

         }*head;


         public:
         polynomial()
         {
             head=NULL;
         }
         void getdegree();
         void getpolynomial(int d);
         void display();
         void addition(polynomial p1,polynomial p2);
};
void polynomial::getdegree()
{
    int degree1;
    cout<<"\n Enter the highest degree of your polynomial:";
    cin>>degree1;
    getpolynomial(degree1);
}
void polynomial::getpolynomial(int degree1)
{
    int i=0;
    p *temp,*data;
    float *arr;
    arr=new float[degree1+1];
    for(i=degree1;i>=0;i--)
    {
        if(i==0)
        {
            cout<<"\n Enter the constant term:";
            cin>>arr[i];
        }
        else
        {
           cout<<"\n Enter the coefficient for degree x^"<<i<<":";
           cin>>arr[i];
        }

    }
    for(i=degree1;i>=0;i--)
    {

        if(head==NULL)
        {
            head=new p;
            head->coefficient=arr[i];
            head->degree=i;
            head->link=NULL;
        }
        else
        {
            temp=head;
            while(temp->link!=NULL)
            temp=temp->link;
            data=new p;
            data->coefficient=arr[i];
            data->degree=i;
            data->link=NULL;
            temp->link=data;
        }
    }
}
void polynomial::display()
{
    p *temp;
    temp=head;
    while(temp!=NULL)
    {
        if(temp->coefficient>=0)
         {
             cout<<"+"<<temp->coefficient;

         }
         else
           cout<<temp->coefficient;
           if(temp->degree!=0)
           {
             cout<<"x^"<<temp->degree;
             cout<<" ";
           }

             temp=temp->link;
    }
}
void polynomial::addition(polynomial p1,polynomial p2)
{
    float coeff;
    int deg;
    p *temp1,*temp2,*temp3,*node;
     temp1=p1.head;
     temp2=p2.head;
     temp3=head;
     while(temp1&&temp2)
     {
         if(temp1->degree>temp2->degree)
           {
              coeff=temp1->coefficient;
              deg=temp1->degree;
              temp1=temp1->link;
           }

          else if(temp1->degree<temp2->degree)
           {
               coeff=temp2->coefficient;
              deg=temp2->degree;
              temp2=temp2->link;
           }
           else
            {
                coeff=temp1->coefficient+temp2->coefficient;
                deg=temp2->degree;
                temp1=temp1->link;
                temp2=temp2->link;
            }
            if(temp3==NULL)
            {
                temp3->coefficient=coeff;
                temp3->degree=deg;
                temp3->link=NULL;
            }
            else
            {
                node=new p;
                node->coefficient=coeff;
                node->degree=deg;
                node->link=NULL;
                temp3->link=node;
                temp3=temp3->link;

            }

     }
}

 main()
{
    polynomial p1,p2,p3;
    p1.getdegree();
    p1.display();
    p2.getdegree();
    p2.display();
    p3.addition(p1,p2);
    p3.display();
}

this is my code for polynomial addition using linked list.It reads the first two polynomials and displays it correctly but it doesnt add them and display it...can someone help me in correcting this code...i would be glad if someone provides codes for the addition function,,:-)

Edited by Dani: Formatting fixed

1
Contributor
1
Reply
2
Views
5 Years
Discussion Span
Last Post by arunkumar267
0

its ok i've solved it :-)

Edited by pyTony: fixed formatting (unnecessary quote removed)

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.