"head.h"
#include
#include
using namespace std;
class NODE
{
public:
NODE();
int coef;
int exp;
NODE *next;
};
NODE::NODE()
{
coef=exp=0;
next=NULL;
}
class DATA
{
public:
DATA();
void GetPoly();
void Derivation();
void Print();
private:
NODE *head,*p,*pre;
int coef,exp;
};
DATA::DATA()
{
pre=head=p=NULL;
coef=exp=0;
}
void DATA::GetPoly()
{
cout<
cout<
bool first=true;
while(cin>>coef>>exp)
{
if(first)
{
head=new NODE;
head->coef=coef;
head->exp=exp;
p=head;
first=!first;
}
else
{
p->next=new NODE;
p=p->next;
p->coef=coef;
p->exp=exp;
}
}
cin.clear();
}
void DATA::Derivation()
{
cout<
if(head==NULL)
{
cout<
return;
}
else
{
pre=p=head;
while(p!=NULL)
{
if(p->exp==0)
{
if(p==head)
{
head=head->next;
delete p;
pre=p=head;
}
else
{
pre->next=p->next;
delete p;
p=pre->next;
}
}
else
{
p->coef*=p->exp;
p->exp--;
pre=p;
p=p->next;
}
}
}
}
void DATA::Print()
{
cout<
if(head==NULL)
{
cout<
return;
}
p=head;
cout<coef;
if(p->exp!=0)
cout<exp;
p=p->next;
while(p!=NULL)
{
cout<coef;
if(p->exp!=0)
cout<exp;
p=p->next;
}
cout<
}
"main.cpp"
#include"head.h"
int main()
{
DATA data;
data.GetPoly();
data.Print();
data.Derivation();
data.Print();
system("pause");
return 0;
}