注册 登录
编程论坛 C++教室

一元多项式加法运算问题运行无法实现一般情况输出,如何解决?

美珊 发布于 2013-10-07 19:59, 378 次点击
各位大神,求帮忙,我在解决一元多项式的过程中,无法实现一般化数据输入。
#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<
2 回复
#2
peach54602013-10-08 14:18
不懂...
#3
pauljames2013-10-12 07:14
看看《数据结构基础c语言版》里面有多项式实现
1