兩個多項式相加(c++實現)

在這裏插入圖片描述

struct Polynomial{
    int coef;
    int expon;
    Polynomial* next;
    Polynomial(int x,int y): coef(x),expon(y),next(NULL){}
}
Polynomial* p1;
Polynomial* p2;

Polynomial* PolyAdd(Polynomial* p1,Polynomial* p2)
{
    int sum;
    Polynomial* rear = new Polynomial(0,0);//創建一個新結點  
    Polynomial* front=rear;
    while(p1 && p2)
        switch(Compare(p1->expon,p2->expon)){
        case 1:
               rear->next= new Polynomial(p1->coef,p1->expon);
               rear = rear->next;
               p1 = p1->next;
               break;  
        case -1:
               rear->next= new Polynomial(p2->coef,p2->expon);
               rear = rear->next;
               p2 = p2->next; 
               break;  
        case 0:
              sum=p1->coef + p2->coef;
              if(sum)  rear->next = new Polynomial(sum,p1->expon);
              rear = rear->next;
              p1 = p1->next;    
              p2 = p2->next;
              break;  
         }
    if(!p1) rear->next = p2;
    if(!p2) rear->next = p1; 
    return front->next; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章