用帶頭結點的單向鍊錶實現多項式乘法

2021-09-27 08:20:31 字數 1645 閱讀 7258

輸入格式限制:

例如:5x2+5x+5寫作:5x2 5x1 5x0[回車]

-時間複雜度略高,還有各種細節可以優化

-並未使用完整的鍊錶體系(僅用了一部分函式)

-c++剛入門,之前一直用的c,寫的比較亂

以下為完整**:

#include using namespace std;

typedef struct polynomial polynomial;

int initpolynomial(polynomial &a)

int getpolyexp(polynomial a,int i,int &exp)

if(temp==null||j>i) return 0;

else }

int getpolyratio(polynomial a,int i,int &ratio)

if(temp==null||j>i) return 0;

else }

int insertnode(polynomial &c,int i,int ratio,int exp)

if(j!=i-1) return 0;

temp2->next=temp->next;

temp->next=temp2;

temp=temp->next;

temp->exp=exp;

temp->ratio=ratio;

return 1;

}void copypolyn(polynomial c,polynomial &a)

tempa->next=null;

return ;

}void freepolynomial(polynomial a)

return ;

}void inputpolynomial(polynomial &a)

while(flag!='\n'); }

void printpolynomial(polynomial &a)

temp=temp->next;

flag++;

} return ;

}int addratio(polynomial &c,int i,int ratio)

if(temp==null||j>i) return 0;

else }

void multionce(int ratioa,int ratiob,int expa,int expb,polynomial &c) //計算某兩項乘積 }

if(expc!=exp) insertnode(c,i,ratioa*ratiob,expa+expb); //暫時無法合併的一項,新插入乙個節點儲存

return ;

}void multipolyn(polynomial &a,polynomial &b) //計算a,b兩個多項式乘積,結果存入a

} freepolynomial(a); //清空a,騰出地方放結果

copypolyn(c,a); //將臨時多項式c的結果複製給a

freepolynomial(c); //free臨時多項式

return ;

}int main()

用c 實現多項式的加法(運用單向鍊錶)

題目 乙個一元多項式可以看作由若干個一元單項式按降冪排列成的線性表。請編寫程式對輸入的兩個一元多項式求和,並輸出求和的結果。輸入為兩個一元多項式,每個一元多項式輸入一行,按照降冪依次輸入每個單項式的係數和指數,並以 1 1 作為結束。係數和指數均為整數,指數不小於0。輸出為求和結果多項式,按照降冪依...

多項式的鍊錶實現

include include typedef struct pnode pnode,polylist void initpl polylist pl pl coe 0 pl exp 0 pl next null void insertafter polylist pl,polylist pd vo...

多項式的鍊錶實現

實現多項式的輸入 輸出 加法 求導 求值。using namespace std include include include include stdio.h using namespace std struct linknode 多項式結點 class poly 多項式類 poly poly p...