struct PolyNode {
int coef; //系數
int expon; //指數
struct PolyNode *link; //指向下一個節點的指針
} *Polynomial;
Polynomial PolyAdd(Polynomial P1, Polynomial P2) {
Polynomial front, rear, temp;
int sum;
rear = (Polynomial)malloc(sizeof(struct PolyNode));
front = rear; //由front記錄多項式鏈表頭結點
while(P1&&P2) { //當兩個多項式都有非零項待處理時
switch(Compare(P1->expon, P2->expon)) {
case 1:
Attach(P1->coef, P1->expon, &rear);
P1 = P1->link;
break;
case -1:
Attach(P2->coef, P2->expon, &rear);
P2 = P2->link;
break;
case 0:
sum = P1->coef + P2->coef;
if (sum) {
Attach(sum, P1->expon, &rear);
}
P1 = P1->link;
P2 = P2->link;
break;
}
for(;P1;P1 = P1->link) { //將未處理完的另一個多項式的所有結點一次復制到結果多項式中去
Attach(P1->coef, P1->expon, &rear);
}
for(;P2;P2 = P2->link) {
Attach(P2->coef, P2->expon, &rear);
}
rear->link = NULL;
temp = front;
front = front->link; //令front指向結果多項式第一個非零項
free(temp); //釋放臨時空表頭結點
return front;
}
}
void Attach(int c, int e, Polynomial *pRear) {
Polynomial P;
P = (Polynomial)malloc(sizeof(struct PolyNode));
P->coef = c; // 對新結點賦值
P->expon = e;
P->link = NULL;
(*pRear)->link = P;
*pRear = P; //修改pRear的值
}
多項式
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 2016年11月7日下午,市教研中心高中語文名師工作坊在包鋼四中舉行了基于課標的教學第一期課堂實踐研討活動。 活動...