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

2021-09-24 13:59:57 字數 2041 閱讀 5592

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

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

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

-----思路都寫在**中-----

#include #include #include #include //讀取 儲存 計算 輸出

//儲存多項式的節點結構體

typedef struct polynomial * ptopoly;

struct polynomial;

typedef ptopoly poly;

void attach(int coef, int expo, ptopoly * ptrrear)

void printpoly(poly p)

while(p)//第一項之前不輸出空格

else //之後每一項之前都輸出乙個空格

printf("%d %d",p->coefficient,p->exponent);

p = p->next;

}printf("\n");//輸出完之後 輸出乙個回車

}poly readpoly()

ptopoly head = temp;

temp = temp->next;//temp指向真實的第乙個節點

free(head);//釋放頭結點

return temp;

}int compare(int a,int b)else if (anext = null;

poly rear = p; //尾指標

int sum;

while(p1 && p2)

p2 = p2->next;

p1 = p1->next;

break;}}

//比較完之後把剩餘的數放入結果多項式中

for (;p1;p1=p1->next)

for (;p2;p2=p2->next)

//整理結果多項式鍊錶

rear->next = null;

poly temp = p;

p = p->next;

free(temp);//釋放空的頭結點

return p;

}//乘法需要用到

//負責吧乙個節點分別和乙個存放多項式鍊錶的每一項相乘,結果放入乙個新的鍊錶中

poly addpoly(poly rear, poly p2)

poly temp = p;

p = p->next;

free(temp);

return p;

}//計算乘法

//思路是:讓p1的每一項都和p2相乘,會得到p1的項數那麼多的多項式,然後把這些多項式相加,就是p1和p2相乘的結果

//比如:p1的第一項乘完p2的每一項之後得到乙個多項式,然後p2的第二項乘完p2的每一項之後得到乙個多項式,一次類推。最後把所有的多項式相加起來就是結果。

poly multiplypoly(poly p1, poly p2)

poly start = addpoly(p1,p2);//起始項

poly point = p1->next;

while(point)

return start;

}int main()

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

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

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

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

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

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