使用單鏈表實現一元多項式的儲存。
加法:
對於兩個一元多項式中所有指數相同的項,對應係數相加,若其和不等於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.列印輸出 比較的詳解 在存放多項式的時候對存入資料進行排序...