資料結構上機實驗。
實驗要求:
根據所給的一元多項式相加的程式,寫出一元多項式相乘的程式並除錯通過。
注意: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頁的例子,採用鏈式儲存結構,將兩個線性鍊錶表示的一元多項式相加,並輸出。此一元多項式遵循多項式相加運算規則 對於兩個一元多項式中存在指數相同的項時,其對應係數相加。合併後係數和為零時,刪除 和多項式 中此項 合併後係數和不為零時,則構成 和多項式 中的一項。對於兩個一元多項式...