最近在复习数据结构,发现一元多项式的表示和运算很适合用单链表来实现,因此写了一个c++类,代码贴上来与大家分享。
#include <iostream>
using namespace std;
struct polynode{
float xi;
int zhi;
polynode *next;
};
//一元多项式类
class polynomial{
public:
polynomial(){
head=new polynode;
head->next=NULL;
};
//~polynomial();
void createpoly();
void printpoly();
void polysort();
int polylength();
void addpoly(polynomial c);
void minuspoly(polynomial a);
void multiplypoly(polynomial b);
private:
polynode *head;
};
//创建一元多项式,输入项数和每项系指数建立链表
void polynomial::createpoly(){
int m;
cout<<"请输入多项式项数"<<endl;
cin>>m;
cout<<"请依次输入m项的系数和指数,以空格分割"<<endl;
/*
//数组的形式,还是不好
polynode *nodearray=new polynode[m];
head->next=nodearray;
for(int i=0;i++;i<m){
cin>>nodearray[i].xi>>nodearray[i].zhi;
if(i==m-1)
nodearray[i].next=NULL;
else
nodearray[i].next=&nodearray[i+1];
}
*/
//链式创建的形式,比较好
polynode *p1,*p2;
p1=head;
for(int i=0;i<m;i++){
p2=new poly