数据结构课程设计_两个一元稀疏多项式相加 第2页

数据结构课程设计_两个一元稀疏多项式相加 第2页

操作结果:输入M项的系数和指数,建立一元多项式P

PrintPloyn(P)

初始条件:一元二项式P存在。

操作结果:输出一元二项式P

AddPolyn(&Pa,&Pb)

初始条件:一元二项式PaPb已存在。

操作结果:完成多项式相加运算,即: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){

需要完整内容的请联系QQ3249114,本文免费,转发请注明源于www.751com.cn     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

上一页  [1] [2] [3] [4] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有