• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

关于1002. A+B for Polynomials (25)的某些问题

/*在使用单链表测试时有部分数据出错,不知道哪里有问题,烦请看一下代码,或者说一下应该测试哪几类特殊数据? 再者使用顺序表方法(代码未贴,且已通过测试)进行时,用时反而少,请问单链表适用于哪里,会显示出它的优点?*/#include #include #include using namespace std;typedef struct{    int expn;//指数    double coef;//系数}term,ElemType;typedef struct LNode{    ElemType data;    struct LNode *next;}LNode,*LinkList;typedef LinkList polynomial;void CreatPolyn(polynomial &p,int m);void PrintPolyn(polynomial p);void AddPolyn(polynomial &pa,polynomial &pb);//pa=pa+pb,并销毁一元多项式pbint main(){    polynomial pa,pb;    int ma,mb;    scanf("%d",&ma);//输入多项式的个数    CreatPolyn(pa,ma);    scanf("%d",&mb);    CreatPolyn(pb,mb);    AddPolyn(pa,pb);由于题目要求输入数据是按顺序排列的,就没有进行排序处理    PrintPolyn(pa);    return 0;}void CreatPolyn(polynomial &p,int m){    polynomial q,rear;    rear=(polynomial)malloc(sizeof(LNode));    p=rear;    rear->data.coef=rear->data.expn=0;    rear->next=NULL;    for(int i=0;idata.expn),&(q->data.coef));        rear->next=q;        rear=q;        rear->next=NULL;    }}void PrintPolyn(polynomial p){    polynomial q;    q=p->next;    int count=0;    while(q){        count++;        q=q->next;    }    printf("%d",count);    q=p->next;    while(q){        printf(" %d %.2lf",q->data.expn,q->data.coef);        q=q->next;    }    printf("\n");    free(q);    q=NULL;}void AddPolyn(polynomial &pa,polynomial &pb){     polynomial qa,qb,rear;     rear=pa;     qa=pa->next;qb=pb->next;     while(qa&&qb){        if(qa->data.expn>qb->data.expn){            rear->next=qa;            rear=qa;            qa=qa->next;        }        else if(qa->data.expndata.expn){            rear->next=qb;            rear=qb;            qb=qb->next;        }        else{            if((qa->data.coef+qb->data.coef)){                qa->data.coef+=qb->data.coef;                rear->next=qa;                rear=qa;            }            qa=qa->next;            qb=qb->next;        }     }     while(qa){        rear->next=qa;        rear=qa;        qa=qa->next;     }     while(qb){        rear->next=qb;        rear=qb;        qb=qb->next;     }     free(pb);     pb=NULL;}

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!