習題3 6 一元多項式的乘法與加法運算

2021-10-01 22:28:51 字數 1295 閱讀 9434

這道題是乙個很好的練習c語言指標操作的題目

加法類似與歸併操作,比較大小即可

乘法轉化為加法即可,並且可以直接用加法定義的函式,還是很舒服的。

問題:希望有人能告訴我這些申請的結點要不要手動釋放,以後來看吧。

#include

#include

typedef

struct polynode *poly;

struct polynode

;void

print

(poly p)

while

(p)else

p = p->next;

}printf

("\n");

}void

attach

(int co,

int exp, poly *rear)

//注意要傳入指標

poly freehead

(poly head)

poly read()

return

freehead

(p);

}poly add

(poly p1, poly p2)

p1 = p1->next;

p2 = p2->next;

}else

if(p1->exp > p2->exp)

else

}while

(p1)

attach

(p1->co, p1->exp,

&rear)

, p1 = p1->next;

while

(p2)

attach

(p2->co, p2->exp,

&rear)

, p2 = p2->next;

// 基本就是歸併merge的**

return

freehead

(p);

}poly mult

(poly p1, poly p2)

//(a + b)*(c + d) = (a * c + a * d) + (b * c + b * d),用**來看就是遍歷而已

//因為指數是排好序的,因此乘積也是排好序的

while

(p1)

t =freehead

(t);

if(p ==

null

)else

p1 = p1->next;

}return p;

}int

main()

PTA習題 一元多項式的乘法與加法運算

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

3 6 一元多項式的乘法與加法運算 20分

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

一元多項式的乘法與加法運算

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