Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by abc ( 6 years ago )
#include<iostream>
#include<stdlib.h>
using namespace std;
struct node
{
    int data;
    int data2;
    struct node *next;
}*q,*p,*r,*s,*t,*u,*v,*temp,*px=NULL,*qx=NULL,*fx=NULL;
class polynomial
{
    public:
    int val,x,key,k,c,a;
    void getdata()
    {
        cout<<"Enter first polynomial expression"<<endl<<endl;
        insert();
        cout<<"Enter second polynomial expression"<<endl<<endl;
        insert2();
        print();
        print2();
        addition();
        print3();
    }
    void insert()
    {
        x=1;
        do
        {
            cout<<"Enter the coefficient"<<endl;
            cin>>val;
            p=(struct node*)malloc(sizeof(node));
            p->data=val;
            cout<<"Enter the exponent"<<endl;
            cin>>val;
            p->data2=val;
            if(px==NULL)
            {
                p->next=NULL;
                px=p;
            }
            else
            {
                q=px;
                while(q->next!=NULL)
                {
                    q=q->next;
                }
                q->next=p;
                p->next=NULL;
            }
            cout<<"Insert again?   1.Yes    2.No"<<endl;
            cin>>a;
            if(a==2)
            {
                x=0;
            }
        }
        while(x==1);
    }
    void insert2()
    {
        x=1;
        do
        {
            cout<<"Enter the coefficient"<<endl;
            cin>>val;
            p=(struct node*)malloc(sizeof(node));
            p->data=val;
            cout<<"Enter the exponent"<<endl;
            cin>>val;
            p->data2=val;
            if(qx==NULL)
            {
                p->next=NULL;
                qx=p;
            }
            else
            {
                q=qx;
                while(q->next!=NULL)
                {
                    q=q->next;
                }
                q->next=p;
                p->next=NULL;
            }
            cout<<"Insert again?   1.Yes    2.No"<<endl;
            cin>>a;
            if(a==2)
            {
                x=0;
            }
        }
        while(x==1);
    }
    void addition()
    {
        p=px;
        q=qx;
        //s=fx;
        while(p!=NULL && q!=NULL)
        {
            if(p->data2==q->data2)
            {
                //cout<<"hi hi hi"<<endl<<endl;
                s=(struct node*)malloc(sizeof(node));
                s->data=p->data+q->data;
                s->data2=q->data2;
                //cout<<"hi hi hi"<<endl<<endl;
                if(fx==NULL)
                {
                    s->next=NULL;
                    //cout<<"hi hi hi"<<endl<<endl;
                    fx=s;
                }
                else
                {
                    t=fx;
                    //cout<<"hi2 hi2 hi2"<<endl<<endl;
                    while(t->next!=NULL)
                    {
                        //cout<<"hi3 hi3 hi3"<<endl<<endl;
                        t=t->next;
                    }
                    t->next=s;
                    s->next=NULL;
                }
                p=p->next;
                q=q->next;
            }
            else
            {
                if(p->data2>q->data2)
                {
                    s=(struct node*)malloc(sizeof(node));
                    s->data=p->data;
                    s->data2=p->data2;
                    p=p->next;
                }
                else
                {
                    s=(struct node*)malloc(sizeof(node));
                    s->data=q->data;
                    s->data2=q->data2;
                    q=q->next;
                }
                if(fx==NULL)
                {
                    s->next=NULL;
                    fx=s;
                }
                else
                {
                    t=fx;
                    while(t->next!=NULL)
                    {
                        t=t->next;
                    }
                    t->next=s;
                    s->next=NULL;
                }
            }
        }
        if(p!=NULL)
        {
            r->next=p;
        }
        if(q!=NULL)
        {
            r->next=q;
        }
    }
    /*void insert()
    {
        x=1;
        do
        {
            cout<<"Enter the coefficient"<<endl;
            cin>>val;
            p=(struct node*)malloc(sizeof(node));
            p->data=val;
            cout<<"Enter the exponent"<<endl;
            cin>>val;
            p->data2=val;
            if(px==NULL)
            {
                p->next=NULL;
                px=p;
            }
            else
            {
                p->next=px;
                px=p;
            }
            cout<<"Insert again?   1.Yes    2.No";
            cin>>a;
            if(a==2)
            {
                x=0;
            }
        }
        while(x==1);
    }
    void insert2()
    {
        x=1;
        do
        {
            cout<<"Enter the coefficient"<<endl;
            cin>>val;
            p=(struct node*)malloc(sizeof(node));
            p->data=val;
            cout<<"Enter the exponent"<<endl;
            cin>>val;
            p->data2=val;
            if(qx==NULL)
            {
                p->next=NULL;
                qx=p;
            }
            else
            {
                p->next=qx;
                qx=p;
            }
            cout<<"Insert again?   1.Yes    2.No";
            cin>>a;
            if(a==2)
            {
                x=0;
            }
        }
        while(x==1);
    }
    void insert_bp()
    {
        c=0;
        cout<<"Enter the key element"<<endl;
        cin>>key;
        cout<<"Enter the element you want to insert before key element"<<endl;
        cin>>val;
        p=(struct node*)malloc(sizeof(node));
        p->data=val;
        if(list==NULL)
        {
            cout<<"List is empty"<<endl<<endl;
        }
        else
        {
            q=list;
            while(q->next!=NULL && q->data!=key)
            {
                r=q;
                q=q->next;
                c=1;
            }
            if(c==0 && q->data==key)
            {
                p->next=q;
                list=p;
            }
            else if(q->data==key)
            {
                r->next=p;
                p->next=q;
            }
            else
            {
                cout<<"Key element not found"<<endl<<endl;
            }
        }
    }
    void insert_ap()
    {
        cout<<"Enter the key element"<<endl;
        cin>>key;
        cout<<"Enter the element you want to insert after key element"<<endl;
        cin>>val;
        p=(struct node*)malloc(sizeof(node));
        p->data=val;
        if(list==NULL)
        {
            cout<<"List is empty"<<endl<<endl;
        }
        else
        {
            q=list;
            while(q->next!=NULL && q->data!=key)
            {
                q=q->next;
                r=q->next;
            }
            if(q->data==key)
            {
                q->next=p;
                p->next=r;
            }
            else
            {
                cout<<"Key element not found"<<endl<<endl;
            }
        }

    }
    void delete_b()
    {
        if(list!=NULL)
        {
            p=list;
            list=list->next;
            free(p);
        }
        else
        {
            cout<<"Cannot delete list is empty"<<endl<<endl;
        }
    }
    void delete_e()
    {
        if(list==NULL)
        {
            cout<<"Cannot delete list is empty"<<endl<<endl;
        }
        else
        {
            if(list->next!=NULL)
            {
                q=list;
                while(q->next!=NULL)
                {
                    r=q;
                    q=q->next;
                }
                free(q); 
                r->next=NULL;
            }
            else
            {
                q=list;
                free(q);
                list=NULL;
            }
        }
    }
    void delete_p()
    {
        c=0;
        if(list==NULL)
        {
            cout<<"Cannot delete list is empty"<<endl<<endl;
        }
        else
        {
            cout<<"Enter the element you want to delete"<<endl;
            cin>>key;
            q=list;
            while(q->next!=NULL && q->data!=key)
            {
                r=q;
                q=q->next;
                c=1;
            }
            if(q->data==key && c==0)
            {
                s=q->next;
                free(q);
                if(s!=NULL)
                {
                    list=s;
                }
                else
                {
                    list=NULL;
                }
            }
            else if(q->data==key && c==1)
            {
                s=q->next;
                free(q);
                if(s!=NULL)
                {
                    r->next=s;
                }
                else
                {
                    r->next=NULL;
                }
            }
            else
            {
                cout<<endl;
                cout<<"Key element not found"<<endl<<endl;
            }
        }
    }
    void count()
    {
        int count=0;
        q=list;
        while(q!=NULL)
        {
            q=q->next;
            count++;
        }
        cout<<endl;
        cout<<"Count= "<<count<<endl<<endl;
    }
    void sort()
    {
        int t;
        q=list;
        while(q!=NULL)
        {
            p=list;
            while(p!=NULL)
            {
                if(p->next!=NULL)
                {
                    r=p->next;
                    if(p->data > r->data)
                    {
                        t=p->data;
                        p->data=r->data;
                        r->data=t;
                    }
                }
                p=p->next;
            }
            q=q->next;
        }
    }
    void reverse()
    {
        temp=NULL;
        q=s=list;
        r=q->next;
        while(r!=NULL)
        {
            temp=q;
            q=r;
            r=q->next;
            q->next=temp;
        }
        list=r;
    }*/
    void print()
    {
        if(px==NULL)
        {
            cout<<"List is empty"<<endl<<endl;
        }
        else
        {
            q=px;
            while(q!=NULL)
            {
                cout<<q->data<<"^";
                cout<<q->data2<<"----->";
                q=q->next;
            }
            cout<<endl<<endl;
        }
    }
    void print2()
    {
        if(qx==NULL)
        {
            cout<<"List is empty"<<endl<<endl;
        }
        else
        {
            q=qx;
            while(q!=NULL)
            {
                cout<<q->data<<"^";
                cout<<q->data2<<"----->";
                q=q->next;
            }
            cout<<endl<<endl;
        }
    }
    void print3()
    {
        if(fx==NULL)
        {
            cout<<"List is empty"<<endl<<endl;
        }
        else
        {
            s=fx;
            while(s!=NULL)
            {
                cout<<s->data<<"^";
                cout<<s->data2<<"----->";
                s=s->next;
            }
            cout<<endl<<endl;
        }
    }
};
int main()
{
    polynomial l;
    l.getdata();
}

 

Revise this Paste

Your Name: Code Language: