zoukankan      html  css  js  c++  java
  • 多项式加法运算

    算法思路:两个指针P1和P2分别指向这两个多项式第一个节点,不断循环:

    • P1->expon==P2->expon:系数相加,若结果不为0,则作为结果多项式对应项的系数。同时,P1和P2都分别指向下一项;
    • P1->expon>P2->expon:将P1的当前项存入结果多项式,并使P1指向下一项;
    • P1->expon<P2->expon:将P2的当前项存入结果多项式,并使P2指向下一项;

    当某一多项式处理完时,将另一个多项式的所有节点依次复制到结果多项式中去。

    算法:

     1 Polynomial  PolyAdd(Polynomial P1,Polynomial P2)
     2 {
     3 Polynomial front,rear,temp;
     4 int sum;
     5 rear=(Polynomial)malloc(sizeof(struct Polynomial));
     6 front=rear;
     7 while(P1&&P2)
     8 {
     9 switch(Compare(P1->expon,P2->expon)){
    10 case 1:
    11           Attach(P1->coef,P1->expon,&rear);
    12           P1=P1->link;
    13           break;
    14 case -1:
    15            Attach(P1->coef,P1->expon,&rear);
    16           P1=P1->link;
    17           break;
    18 csae 0:
    19           sum=P1->coef+P2->coef;
    20           if(sum) Attach(sum,P1->expon,&rear);
    21           P1=P1->link;
    22           P2=P2->link;
    23          break;
    24      }
    25 for(;P1: P1=P1->link;) Attach(P1->coef,P1->expon,&rear);
    26 for(;P2: P2=P2->link;) Attach(P2->coef,P2->expon,&rear);
    27 rear->link=NULL;
    28 temp=front;
    29 front=front->link;
    30 free(temp);
    31 return front;
    32 }

    Attach实现:

     1 void  Attach(int c,int e,Polynomial *pRear)
     2 {
     3     Polynomial P;
     4     P=(Polynomial)malloc(sizeof(struct Polynomial));
     5     P->coef=c;
     6     P->expon=e;
     7     P->link=NULL:
     8     (*pRear)->link=P;
     9     *pRear=p;
    10 }
    11     

    数据结构:

    1 struct PolyNode{
    2     int ceof;
    3     int  expon;
    4     struct PolyNode *link;
    5 }
    6 typedef struct PolyNode *Polynomial;
    7 Polynomial P1,P2;
  • 相关阅读:
    Understanding identities in IIS
    Name your feature branches by convention
    Branch policies on Azure Repos
    Use Git Credential Managers to Authenticate to Azure Repos
    How do I force my .NET application to run as administrator?
    UML的类型
    ASP.NET Error Handling
    通过泛型,将string转换为指定类型
    Spring Session + Redis实现分布式Session共享
    MongoDB中的数据导出为excel CSV 文件
  • 原文地址:https://www.cnblogs.com/cynthia-dcg/p/6739626.html
Copyright © 2011-2022 走看看