#include
using namespace std;
typedef struct Node{
int m,z;
Node* next;
}LNode,*LinkList;
int Initilist(LinkList& L);
int main(){
int i;
int n;
cin >> n;
LinkList L1 = new LNode;
LinkList p = L1;
for (int i = 0; i < n; i++) {
LinkList temp = new LNode;
scanf("%d,%d", &temp->m, &temp->z);
temp->next = NULL;
p->next = temp;
p = p->next;
}
cin >> n;
LinkList L2 = new LNode;
p = L2;
for (int i = 0; i < n; i++) {
LinkList temp = new LNode;
scanf("%d,%d", &temp->m, &temp->z);
temp->next = NULL;
p->next = temp;
p = p->next;
}
LinkList L3=new LNode;
Initilist(L3);
LinkList p3=L3;
LinkList p1=L1->next;
LinkList p2=L2->next;
LinkList temp3=new LNode;
while(p1!=NULL&&p2!=NULL){
if(p1->z z){
p3->next=p1;
p1=p1->next;
p3=p3->next;
}
else if(p1->z==p2->z){
int data=p1->m+p2->m;
if(data==0){
p1=p1->next;
p2=p2->next;
}else{
temp3->m=data;
temp3->z=p1->z;
p3->next=temp3;
p3=p3->next;
p1=p1->next;
p2=p2->next;
}
}
else{
p3->next=p2;
p2=p2->next;
p3=p3->next;
}
}
if(p1==NULL){
p3->next=p2;
}
if(p2==NULL){
p3->next=p1;
}
LinkList temp4=L3->next;
while(temp4!=NULL){
printf("%d*x^%d ",temp4->m,temp4->z);
temp4=temp4->next;
}
printf("\n");
Initilist(L1);
Initilist(L2);
Initilist(L3);
return 0;
}
int Initilist(LinkList& L){
L=new LNode;
L->next=NULL;
return 1;
}
是没有及时释放内存的问题吗?我为了节省时间没有释放用过的内存,但这应该不会影响输出啊