c链表语言实现多项式求导,数据结构_链表_多项式求导_C++实现

"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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值