資料結構課後習題 實現多項式的加法 c語言版

2021-07-23 03:44:17 字數 1279 閱讀 3161

使用單鏈表實現一元多項式的儲存。

加法:

對於兩個一元多項式中所有指數相同的項,對應係數相加,若其和不等於0,則構成多項式中的一項;對於兩個一元多項式中所有指數不相同的項,則將此節點新增到多項式鍊錶中去。

減法:

先將b多項式鍊錶的資料域取反 ,然後再進行加法運算。

乘法:

將a多項式中的某一項去乘b多項式中的每一項,a多項式中的每一項重複如此,係數加至合適指數的係數上。

只寫了多項式的建立和加法,減法和乘除也只是在上面的步驟上對指數和係數進行操作!

輸出是先係數後指數!

#include

"stdio.h"

#include

"stdlib.h"

typedef struct polynode *polynomial;/*定義結點*/

struct polynode/*建立節點,coef為係數,expon為指數*/

; polynomial readpoly();/讀取鍊錶,實際上是建立鍊錶/

void printpoly(polynomial p);/*列印鍊錶*/

polynomial mult(polynomial p1,polynomial p2);/*相加*/

void attach(int c,int e,polynomial *prear);/*將節點鏈到pp鏈上作為輸出(實際上就是建立鏈)*/

int main()/*主程式*/

polynomial readpoly()

t=p;p=p->

link;free(t);

return p;

}void attach(int c,int e,polynomial *prear)

polynomial mult(polynomial p1,polynomial p2)/*求和*/

else

if(t1->expon>t2->expon)

else

} while(t1)/*如果有剩下將剩下的鏈補上*/

while(t2)

rear->

link

=null;

q=p;

p=p->

link;

free(q);/*將我們之前申請的頭節點釋放掉*/

return p;

}void printpoly(polynomial p)/*列印相應的鏈,得到結果*/

while(p)

printf("\n");

}

資料結構 多項式的運算

題意理解 已知兩個多項式 1 3x 4 5x 2 6x 2 2 5x 7x 4 3x 多項式和 5x 4x 4 5x 2 9x 2 多項式乘積 a b c d ac ad bc bd 略輸入樣例 4 3 4 5 2 6 1 2 0 3 5 20 7 4 3 1輸出樣例 15 24 25 22 30 ...

1216 資料結構練習題 多項式求和

描述 給定兩個多項式,求其和。輸入 輸入資料報括多組,第一行給出了測試資料的組數。每一組資料的格式如下 每組資料的第一行輸入第乙個多項式的非零係數個數m,下m行輸入每個係數和對應的指數項,再下一行為第二個多項式的非零係數個數n,下n行輸入每個係數和對應的指數項,每個多項式的指數項不重複,係數和指數項...

資料結構 單鏈表實現多項式加法

要求 有兩組多項式,每組隨機輸入n組數,每組數輸入兩個值a,b,a代表係數,b代表指數,輸入資料無任何限制 只要是數字即可 思路 1.建立兩個鍊錶l1,l2分別存放兩組多項式 2.比較每組多項式,如果指數相同就把他們係數相加 詳解在下面 3.列印輸出 比較的詳解 在存放多項式的時候對存入資料進行排序...