線性結構2 一元多項式的乘法與加法運算

2022-02-17 11:07:19 字數 1601 閱讀 6725

02-線性結構2 一元多項式的乘法與加法運算(20 分)

設計函式分別求兩個一元多項式的乘積與和。

輸入格式:

輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。

輸出格式:

輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。零多項式應輸出0 0。

輸入樣例:

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 4 -15 3 18 2 -6 1

5 20 -4 4 -5 2 9 1 -2 0

使用鍊錶儲存多項式的係數和指數,因為輸入時是有序的,因此多項式的加類似於有序鍊錶的排序,多項式的乘法可以在插入時確定要插入的位置,也可以固定插入到鍊錶尾,最後對鍊錶排序。

#include "bits/stdc++.h"

using namespace std;

typedef struct ploynode *ploynomial;

struct ploynode

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

ploynomial readploy()

//刪除無用的頭結點

t = p; p = p->link; free(t);

return p;

}ploynomial add(ploynomial p1, ploynomial p2)

else if (t1->expon > t2->expon)

else

}while (t1)

while (t2)

t = p; p = p->link; free(t);//刪除無用的頭結點

return p;

}ploynomial mult(ploynomial p1, ploynomial p2)

t1 = t1->link;

}t = p; p = p->link; free(t);

// 用冒泡把多項式按照指數降序排列

t1 = p;

while (t1->link)

else if (t2->expon == t2->link->expon)

t2 = t2->link;

}t1 = t1->link;

}return p;

}void printploy(ploynomial p)

bool ans = true;

if (p->coef)

p = p->link;

while (p)

p = p->link;

}if (ans) cout << "0 0";

}int main()

線性結構2 一元多項式的乘法與加法運算

輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。零多項式應輸出0 0。4 3 4 5 2...

線性結構 一元多項式的乘法與加法運算

設計函式分別求兩個一元多項式的乘積與和。輸入格式 輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出格式 輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但...

線性結構 一元多項式的乘法與加法運算

題目 設計函式分別求兩個一元多項式的乘積與和。輸入格式 輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出格式 輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分...