多項(xiàng)式加法運(yùn)算
我們準(zhǔn)備采用不帶頭節(jié)點(diǎn)的單向鏈表結(jié)構(gòu)表示一元多項(xiàng)式,并按照指數(shù)遞減的順序排列各項(xiàng)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-834257.html
對(duì)列表存放的兩個(gè)多項(xiàng)式進(jìn)行加法運(yùn)算時(shí),可以使用兩個(gè)指針p1和p2。初始時(shí)的p1和p2分別指向這兩個(gè)多項(xiàng)式第1個(gè)節(jié)點(diǎn)(指數(shù)的最高項(xiàng))。通過(guò)循環(huán)不斷比較p1和p2所指的節(jié)點(diǎn),比較結(jié)果為以下三種情況之一并作不同處理。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-834257.html
- 兩數(shù)據(jù)項(xiàng)指數(shù)相等
若結(jié)果不為0,將結(jié)果對(duì)應(yīng)的系數(shù)連同指數(shù)一并存入結(jié)果多項(xiàng)式。沿著兩結(jié)點(diǎn)的鏈域,使P1和P2分別指向兩個(gè)多項(xiàng)式的下一項(xiàng),再進(jìn)行新一輪比較。 - P1中的數(shù)據(jù)項(xiàng)指數(shù)較大
P2保持不變,把P1的當(dāng)前項(xiàng)存入多項(xiàng)式,P1指向下一項(xiàng)。 - P2中的數(shù)據(jù)項(xiàng)指數(shù)較大
P1保持不變,把P2的當(dāng)前項(xiàng)存入多項(xiàng)式,P2指向下一項(xiàng)。
代碼實(shí)現(xiàn)
typedef struct PolyNode* PtrToPolyNode;
struct PolyNode {
int Coef;
int Expon;
PtrToPolyNode Next;
};
typedef PtrToPolyNode Polynomial;
int compare(int e1, int e2) {
if (e1 > e2) {
return 1;
}
else if(e1 < e2)
{
return -1;
}
else
{
return 0;
}
}
void Attach(int ceof, int expon, Polynomial* PtrRear) {
Polynomial t;
t->Expon = expon;
t->Coef = ceof;
t->Next = NULL;
(*PtrRear)->Next = t;
*PtrRear = t;
}
Polynomial PolyAdd(Polynomial P1, Polynomial P2) {
Polynomial front, rear;
rear = (Polynomial)malloc(sizeof(struct PolyNode));
front = rear;
while (P1 && P2) {
switch (compare(P1->Expon, P2->Expon))
{
case 1:
Attach(P1->Coef, P1->Expon, &rear);
P1 = P1->Next;
break;
case -1:
Attach(P2->Coef, P2->Expon, &rear);
P2 = P2->Next;
break;
case 0:
int sum = P1->Coef + P2->Coef;
if (sum) {
Attach(sum, P1->Expon, &rear);
P1->Next;
P2->Next;
break;
}
}
}
for (; P1; P1 = P1->Next) {
Attach(P1->Coef, P1->Expon, &rear);
}
for (; P2; P2 = P2->Next) {
Attach(P2->Coef, P2->Expon, &rear);
}
rear->Next = NULL;
Polynomial temp = front;
front = front->Next;
free(temp);
return front;
}
到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu)】15 隊(duì)列應(yīng)用實(shí)例:多項(xiàng)式加法運(yùn)算的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!