#include <iostream>
using namespace std;
typedef struct SNode* Polynomial;
struct SNode{
int coefficient;//系数
int index;//指数
Polynomial next;
};
Polynomial attach(int num1=0,int num2=0){
Polynomial list = new(struct SNode);
list->coefficient = num1;
list->index = num2;
list->next = NULL;
return list;
}
Polynomial ReadyPoly(int n){
int number1,number2;
Polynomial list,head = list;
cout<<"Please input the coeddicients and index"<<endl;
while(n--){
cin>>number1>>number2;
list = attach(number1,number2);
list = list->next;
}
return head;
}
Polynomial add( Polynomial & list1,Polynomial & list2){
Polynomial list;
Polynomial start = list;
while(list1||list2){
if((list1->index)>(list2->index)){
list = attach(list1->coefficient,list1->index);
cout<<"larger"<<endl;
}else if(list1->index==list2->index){
int coef = list1->coefficient+list2->coefficient;
list = attach(coef,list1->index);
}else{
list = attach(list2->coefficient,list2->index);
}
list = list->next;
list2 = list2->next;
list1 = list1->next;
}
return start;
}
void printPoly(Polynomial & list){
while(list){
cout<<"( "<<list->coefficient<<","<<list->index<<" )"<<endl;
list = list->next;
}
}
int main()
{
int count,n=2;
Polynomial list1=NULL,list2=NULL;
cout<<"Please input times of input."<<endl;
cin>>count;
list1 = ReadyPoly(count);
cin>>count;
list2 = ReadyPoly(count);
Polynomial list=NULL;
list = add(list1,list2);
printPoly(list);
return 0;
}
初学数据结构和C++还望大家指导,谢谢!