實驗 一元多項式的相加與相乘

2021-07-05 18:14:36 字數 2835 閱讀 7386

資料結構上機實驗。

實驗要求:

根據所給的一元多項式相加的程式,寫出一元多項式相乘的程式並除錯通過。

注意:1、最後得到的一元多項式採用兩種輸出格式,即數字格式和一般格式。

2、一般格式的多項式輸出,按指數非遞增順序。

3、係數為0的項不予以輸出(只有0項的多項式只輸出0)。

#include #include #include #define null 0

typedef struct

term;

typedef struct lnode

*link,*linklist;

//比較函式,依a的指數值

int cmp (term a,term b);

//定位

int locateelem(linklist l,term e,link &s,link &q,int(*comp)(term,term));

//刪除結點

void delnext(linklist &l,link s);

//順序插入

void orderinsert(linklist &l,term e,int (*comp)(term,term));

//順序混合插入

void orderinsertmerge(linklist &l,term e,int(*compara)(term,term));

//建立鍊錶

void creatpolyn(linklist &p,int m);

//銷毀鍊錶

void destroylist(linklist &l);

//完成多項式相加運算

void add(linklist &la,linklist &lb);

//完成多項式相乘運算

void mul(linklist &la,linklist &lb,linklist &lc);

//一元多項式輸出方式1

void printpolyn(linklist p);

//一元多項式輸出方式2

void printpolyn2(linklist p);

int main()

else

printf("\n是否繼續輸入 yes or no:");

scanf("%s",s2);

if(s2[0]!='y')

break;

} return 0;

}int cmp (term a,term b)

int locateelem(linklist l,term e,link &s,link &q,int(*comp)(term,term))

if(!p)

else

}void delnext(linklist &l,link s)

void orderinsert(linklist &l,term e,int (*comp)(term,term))

o=(link)malloc(sizeof(lnode));

o->data=e;

q->next=o;

o->next=p;

}void orderinsertmerge(linklist &l,term e,int(*compara)(term,term))

} else orderinsert(l,e,compara); //若不存在,則順序插入新節點

}void creatpolyn(linklist &p,int m)

}void destroylist(linklist &l) //銷毀鍊錶

free(l);

}void add(linklist &la,linklist &lb) //實現加法運算,用順序混合插入函式實現

destroylist(lb); //銷毀lb鍊錶

}void mul(linklist &la,linklist &lb,linklist &lc) //實現乘法運算,完成後銷毀la、lb鍊錶

qa=qa->next;

} destroylist(la);

destroylist(lb);

}void printpolyn(linklist p)

while(q) }

void printpolyn2(linklist p)

printf("%.2f*x^%d ",q->data.coef,q->data.expn);

q=q->next;

while(q)

printf("\n");

}

測試資料一(選擇1為加法):

測試資料二(選擇2為乘法):

測試資料三(相加後出現係數為0的情況):

測試資料四(相加後結果只有0項):

一元多項式的相加和相乘

多項式按指數遞減排列。鍊錶節點 class point public class main 輸入兩個一元多項式 係數,指數 4 3 4 5 2 6 1 2 0 3 5 20 7 4 3 1 輸出相乘後和相加後的多項式 15 24 25 22 30 21 10 20 21 8 35 6 33 5 14...

一元多項式相乘

include include include define max num 40 能夠處理的一元多項式的長度 define max coef 10 係數或冪 帶符號的情況下 能處理的最大長度 typedef struct inodeinode typedef struct inode poly t...

實驗2 一元多項式相加

實驗內容 結合書上第41頁的例子,採用鏈式儲存結構,將兩個線性鍊錶表示的一元多項式相加,並輸出。此一元多項式遵循多項式相加運算規則 對於兩個一元多項式中存在指數相同的項時,其對應係數相加。合併後係數和為零時,刪除 和多項式 中此項 合併後係數和不為零時,則構成 和多項式 中的一項。對於兩個一元多項式...