鍊錶實現多項式的加法和乘法

2022-01-11 14:54:40 字數 1689 閱讀 8513

#ifndef polynomialcompute_poly_h

#define polynomialcompute_poly_h

struct polynode;

typedef struct polynode *polynomial;

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

polynomial polyadd(polynomial p1, polynomial p2);

polynomial polymult(polynomial p1, polynomial p2);

polynomial readpoly();

void printpoly(polynomial p);

#endif //polynomialcompute_poly_h

#include "poly.h"

#include #include #include struct polynode ;

// 新增乙個節點

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

int compare(int lhs, int rhs)

// 加法操作

polynomial polyadd(polynomial p1, polynomial p2)

}// 將未處理完的另乙個多項式的所有節點依次複製到結果多項式中去

for(; p1; p1 = p1->link) attach(p1->coef, p1->expon, &rear);

for(; p2; p2 = p2->link) attach(p2->coef, p2->expon, &rear);

rear->link = null;

temp = front;

front = front->link; // 令 front 指向結果多項式的第乙個非零項

free(temp); // 釋放臨時空表頭節點

return front;

}// 多項式的乘法

polynomial polymult(polynomial p1, polynomial p2)

} else

t2 = t2->link; // 指標往後移動

}t1 = t1->link;

}t2 = p;

p = p->link;

free(t2); // 釋放第乙個沒有儲存資料得節點

return p;

}// 輸出多項式

void printpoly(polynomial p)

while (p)

printf("\n");

}// 讀入多項式

polynomial readpoly()

t = p;

p = p->link;

free(t); // 刪除臨時生成頭節點(因為裡面也沒儲存資料)

return p;

}

#include "poly.h"

// 測試函式

int main()

測試樣例輸出:

多項式加法和乘法(鍊錶實現)

資料結構樹上的 練習留著以後複習 polynomial.h include using namespace std struct pnode pnode int d,int c,pnode n null class polynomial polynomial int d,int c bool ins...

鍊錶實現的多項式加法與乘法

img public class node public node int a,int i public node public int geta public int geti public void seta int a public void seti int i 多項式類 單鏈表實現 pub...

鍊錶應用 多項式加法 乘法

鍊錶學習 多項式應用 通過引入insertpoly函式來完成加法乘法操作 以及類似功能的creat 函式,使我的多項式按照指數下降的方式插入節點 而不需要在輸入時人為的控制 include using namespace std 多項式adt鍊錶實現的型別宣告 typedef struct node...