多項式加減法

2022-09-13 08:33:07 字數 2726 閱讀 2347

問題描述:

設計乙個一元稀疏多項式簡單的加減法計算器

實現要求:

一元稀疏多項式簡單計算器的基本功能是:

(1)輸入並建立多項式

(2)輸出多項式

(3)多項式a和

b相加(4)選作:多項式a和

b相減,建立多項式c=

a-b,並輸出相加的結果多項式

d方法說明:

(1)多項式的輸入與存

用帶表頭

結點的單鏈表儲存多項式,鍊錶中的每個節點分別儲存多項式各項的係數和指數,即每從鍵盤輸入多項式的一對數(係數,指數),可對應建立鍊錶的乙個結點。每個節點的結構為:

(2)多項式資料型別的定義

struct taganaode 

;typedef struct tagnode node;

typedef struct tagnode*  pnode;

(3)主要演算法

①建立兩個鍊錶,分別存放多項式1

和多項式

2,這兩個鍊錶中的節點是按指數降序或者公升序排列的

②多項式相加或相減,下面給出多項式相加的部分實現

/*下面的函式實現兩個多項式的相加,要相加的鍊錶分別由pa和pb

指向(其中,pa,

pb都是分配了空間的頭結點)。

相加的結果直接由pa

指向的鍊錶儲存,即是在

pa鍊錶中新增或刪除(當係數因為相加為

0的情況下)一些結點,構成結果。

這裡要相加的鍊錶中指數都是按從小到大的順序排列好了的,是公升序鍊錶。

*/void add_poly(node *pa,node *pb)

else if (p->exp==q->exp)//假如鍊錶

1和鍊錶

2的指數相等,就要係數相加

else//如果相加後,係數不是

0,不需要保留任何乙個結點,在這裡刪除鍊錶

1的結點,下面刪除鍊錶

2的結點

p=pre->pnext;//p指向要比較的下乙個結點

//下面的**是進行鍊錶

2結點的刪除工作,因為指數相等,僅僅需要保留乙個結點就可以了

//而結果直接儲存在鍊錶

1中,所以,刪除鍊錶

2的結點。

u=q;

q=q->pnext;

free(u);

}else//如果鍊錶

2的當前節點指數小,那麼要把鍊錶

2的當前節點加入到結果鍊錶中(即是鍊錶1)

}if (q)//如果鍊錶

2比鍊錶

1長,那麼需要把鍊錶

2多餘的部分加入結果鍊錶中。鍊錶

1比鍊錶

2長,則什麼都不用做。

free(pb);

}同樣,設計出減法的核心**。

③輸出結果多項式

//程式源**

#include

#include

#include

struct

tagnode

;typedef

struct

tagnode node;

typedef

struct

tagnode*  pnode;

//建立鍊錶

node *creat()}}

}//列印鍊錶

void

print(node *head)

else

}printf(

"0\n");}

void add_poly(node *pa,node *pb)

else if (p->exp==q->exp) //假如鍊錶

1和鍊錶

2的指數相等,就要係數相加

else //如果相加後,係數不是

0,不需要保留任何乙個結點,在這裡刪除鍊錶

1的結點,下面刪除鍊錶

2的結點

p=pre->pnext; //p指向要比較的下乙個結點

//下面的**是進行鍊錶

2結點的刪除工作,因為指數相等,僅僅需要保留乙個結點就可以了

//而結果直接儲存在鍊錶

1中,所以,刪除鍊錶

2的結點。

u=q;

q=q->pnext;

free(u);

}else//如果鍊錶

2的當前節點指數小,那麼要把鍊錶

2的當前節點加入到結果鍊錶中(即是鍊錶1)

}if (q) //如果鍊錶

2比鍊錶

1長,那麼需要把鍊錶

2多餘的部分加入結果鍊錶中。鍊錶

1比鍊錶

2長,則什麼都不用做。

free(pb);

}void

sub_poly(node *pa,node *pb)

else

if(p->exp==q->exp)

else

p=pre->pnext;

u=q;

q=q->pnext;

free(u);

}else}if

(q)free(pb);

};void

main()

getch();

}

(C )多項式加減法(一元)

easy 一元多項式表示 include includeusing namespace std struct node int main cout pre head for int i 1 i n i cout x cout cout int num 0 pre head for int i 1 i...

鍊錶應用 多項式的加減法

輸入兩個多項式輸出這兩個多項式的和或者差 include include includestruct duoxiangshi struct duoxiangshi create b s inde if a i b s inde if a i b s 0 inde if a i x else if a...

一元多項式的加 減法運算

問題描述 假設2個稀疏一元多項式分別由帶頭結點的有序單鏈表a和b儲存 指數項遞增有序 現要求設計乙個演算法,實現稀疏一元多項式的加減法計算。要求使用a和b的原儲存空間 運算後b不再存在,a鍊錶中儲存結果多項式 輸入中的單鏈表的長度不得在計算演算法中利用,僅作為建表使用。注意 加 減法計算後,如某一項...