操作结果:输入M项的系数和指数,建立一元多项式P。
PrintPloyn(P)
初始条件:一元二项式P存在。
操作结果:输出一元二项式P。
AddPolyn(&Pa,&Pb)
初始条件:一元二项式Pa和Pb已存在。
操作结果:完成多项式相加运算,即:Pa=Pa+Pb。
}ADT Polynomial
4.3基本操作的算法描述
(1)项数的结构体
typedef struct{//项的表示,多项式作为LinkList的数据元素
   int coef;//系数
   int expn;//指数
}Term;
(2)输入M项的系数和指数,建立一元多项式P
status CreatPolyn(void){
    scanf(n);
    head=p1=p2=(elemtype*)malloc(LEN);
    scanf(p1->coef,p1->expn);
    for(i=2;i<=n;i++){
    p1=(ElemType*)malloc(LEN);
    scanf(p1->coef,p1->expn);
    p1->next=NULL;
    p2->next=p1;
    p2=p2->next;
    }//for
    return(head);
    }//CreatPolyn
(3)完成多项式相加运算,即:Pa=Pa+Pb
status AddPolyn(Term p1,Term p2){
   n=0;
   if(n==1){
        if(p1->expn>p2->expn){
           head=p3=p1;p1=p1->next;
           }/*if*/
        else if(p1->expn==p2->expn){
           p1->coef=p1->coef+p2->coef;
        if(p1->coef==0){
n=0;p1=p1->next;p2=p2->next;
                      if(!p1)head=p2;
                      if(!p2)head=p1;
                      if(!p1&&!p2){
                             printf("answer is 0\n");
                             head=NULL;}/*if*/
                      }/*if*/
else{
                      head=p3=p1;p1=p1->next;p2=p2->next;
                      }/*else*/
               }/*else if*/
        else{
head=p3=p2;p2=p2->next;
               }/*else*/
               }/*if*/
else{
                      if(p1->expn>p2->expn){
               p3->next=p1;p1=p1->next;p3=p3->next;
               }/*if*/
        else if(p1->expn==p2->expn){
               p1->coef=p1->coef+p2->coef;
               if(p1->coef==0){
                      p1=p1->next;p2=p2->next;
                      } /*if*/
    else{
                      p3->next=p1;p1=p1->next;p2=p2->next;p3=p3->next;
                      }/*else*/
               }/*else if*/
        else{
               p3->next=p2;p2=p2->next;p3=p3->next;
}/*else*/
        } /*else*/
               }/*while*/
        while(p1!=NULL){
需要完整内容的请联系QQ752018766,本文免费,转发请注明源于www.chuibin.com     return(head);
}/*daapolyn*/
(4)输出一元二项式P
status PrintPolyn(p){
   while(p){
   m++;
printf(cm=p->coef,em=p->expn)//输出c1,e1,c2,e2…cm,em,c为系数,e为指数
  }//while
 print(m);//输出项数
}//PrintPolyn