/*這是乙個基於陣列實現的乙個簡單多項式結構
主要的缺點就是會浪費很大記憶體空間*/
#include #include #include #define max 100
typedef struct node
polymariol;
//把多項式初始化為0
void zero(polymariol* poly)
poly->high=0;
}//兩個多項式相加
void add(const polymariol* poly1,const polymariol* poly2,polymariol* sum)
}//兩個多項式相減,前者減去後者
void sub(const polymariol* poly1,const polymariol* poly2,polymariol* res)
}//多項式乘法
void multip(const polymariol* poly1,const polymariol* poly2,polymariol* res)
else
}}
}//按照一定格式輸出多項式
void show(polymariol* p)
printf("\n");}/*
使用兩個簡單的多項式進行測試
p1 = 1+x1+x2
p2 = 1+x1
p1+p2 = 2 + 2x2 +x2
p2-p1 = 0 + 0 -x2
p2*p1 = 1 + 2x1 + 2x2 +x3
*/int main(void)
p2->high = 1;
for(int b=0;b<=p2->high;b++)
add(p1,p2,res);
show(res);
zero(res);
sub(p2,p1,res);
show(res);
zero(res);
multip(p1,p2,res);
show(res);
//**分配的記憶體空間
free(p1);
free(p2);
free(res);
return 0;
}
多項式簡單應用
求 displaystyle sum na i cdot b i 對於求 displaystyle sum na i cdot b i 把b陣列翻轉一下,等價於求 displaystyle sum na i cdot b 這不就是乙個卷積嘛,時間複雜度 theta nlog n 你可能會說時間複雜度...
單鏈表應用 多項式實現(C )
一般用兩個類,結點類linknode和鍊錶類list,協同表示單鏈表,主要有3種方式 class list class linknode class list class list linknode first class linknode class list public linknode te...
多項式相加(C語言)
多項式相加 include include define null 0 struct poly 設定結構體 struct poly jianli void 建立鍊錶 p1 next null return head1 int list struct poly head 求鍊錶長度 return l ...