一元多项式加法运算问题运行无法实现一般情况输出,如何解决?
各位大神,求帮忙,我在解决一元多项式的过程中,无法实现一般化数据输入。#include
typedef struct
{
int xi;//系数
int zhi;//指数
}ElemType;
typedef struct LNode
{
ElemType data; //结点的数据部分
struct LNode *next;
} LinkList;
//初始化链表
void InitList(LinkList *&L)
{
L=new LinkList;
L->next=NULL;
}
//插入一个数据结点e到有序链表中
void InsertList(LinkList *&L,ElemType e)
{
LinkList *r,*s;//r是循环用的结点指针,s是插入的新结点
r=L;
//寻找新插入结点的位置
while(r->next!=NULL&&e.zhi>r->next->data.zhi)
r=r->next;
s=new LinkList;
s->data.xi=e.xi; s->data.zhi=e.zhi;
//将e的值赋给s指针所指结点
s->next=r->next;
r->next=s;
}
//两个多项式相加
void AddList(LinkList *&L,LinkList *Lc)
{
LinkList *r,*s;
ElemType p;
r=L;
s=Lc;
if(r->next!=NULL && s->next!=NULL)
{
while(s->next->data.zhi==r->next->data.zhi)
{
r->next->data.xi=s->next->data.xi+r->next->data.xi;
s=s->next;
}
p.xi=s->next->data.xi;
p.zhi=s->next->data.zhi;
InsertList(L,p);
r=r->next;
}
}
//遍历线性表
void DispList(LinkList *L)
{
LinkList *p=L->next;
cout<<"F(X)=";
while(p)
{
cout<data.xi<<"X^"<data.zhi;
if(p->next!=NULL&&p->next->data.xi>0)
cout<<"+";
p=p->next;
}
cout<