十六 鍊錶實現一元多項式儲存結構和演算法

2021-09-24 13:27:01 字數 1292 閱讀 5195

和陣列實現的思想一樣,唯一的優點就是不會浪費空間,鍊錶不懂得可以看第十四篇文章和一二篇文章

#include #include //定義多項式鍊錶儲存結構

typedef struct pnode

pnode, *polynomial;

//初始化多項式鍊錶

void initpoly(polynomial *poly)

//建立多項式,提供多項式的儲存結構和建立資料(第一儲存係數,第二個儲存次數),陣列長度

void createpoly(polynomial poly, int multiarray[2], int len)

}//兩個多項式相加

void addpoly(polynomial poly1, polynomial poly2, polynomial poly3)

else

if(tmp2 != null)

}tmp1 = tmp1 -> next;

tmp2 = tmp2 -> next; }}

//對多項式帶入職進行計算

int calculatepoly(polynomial poly, int num)

sum += tmp -> factor * n;

tmp = tmp -> next;

} return sum;

}int main(void)

,,,}; //次數為0的為常數 這個陣列轉換為多項式為 : 1 + 2x + 3x^2 + 4x^5

int len1 = sizeof(multiarray1)/sizeof(multiarray1[0]);

initpoly(&poly1);

createpoly(poly1, multiarray1, len1);

polynomial poly2;

int multiarray2[4][2] = ,,,};

int len2 = sizeof(multiarray2)/sizeof(multiarray2[0]);

initpoly(&poly2);

createpoly(poly2, multiarray2, len2);

polynomial poly3;

initpoly(&poly3);

addpoly(poly1, poly2, poly3);

int i = calculatepoly(poly3, 1);

printf("%d\n", i);

return 0;

}

一元多項式加法鍊錶實現

使用鍊錶實現一元多項式加法 並使用已有鍊錶返回運算結果 一元多項式求和 void sumlist slist a,slist b else output m output n t m next while m next null n next null else if m next exp n ne...

鍊錶實現一元多項式相加

c 鍊錶實現一元多項式相加 如下 輸入多項式按次數從高到低排列 include include using namespace std intmain 定義節點型別,coe表示x前的係數,order表示x的次數 int coe,order int i int nodenuma 多項式a的項數 pri...

鍊錶 一元多項式求導

7 1 一元多項式求導 20 分 設計函式求一元多項式的導數。以指數遞降方式輸入多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。3 4 5 2 6 1 2 0輸出樣例 12 3 10...