一元稀疏多項式加法計算器 C語言實現

2021-10-08 06:26:41 字數 3296 閱讀 8449

#include

#include

#define ok 1

#define error 0

typedef

int returnvalue;

typedef

struct polynode polynode,

* polylist;

//輸入資料, 邊輸入邊排序進鍊表

returnvalue inputdataandsortingdata

(polylist polynomial,

int n)

;//初始化多項式鍊錶

void

init

(polylist& polynomial)

;//將兩個多項式相加

void

polynomialadd

(polylist a, polylist b)

;// 輸出計算結果

void

displayresult

(polylist a)

;// 指令輸入與判斷

intinput_judgefun

(int function)

;// 顯示選單

void

menu()

;void

aboutus()

;int

main()

// 輸入並整理資料

int n2;

// n2 為多項式 b 的項數

printf

("請輸入第二個多項式的項數:");

scanf

("%d"

,&n2)

; polylist b;

init

(b);

// 初始化鍊錶 b if(

inputdataandsortingdata

(a, n1)

== error)

// 輸入並整理資料

polynomialadd

(a, b)

;// 進入函式開始計算

displayresult

(a);

// 顯示計算結果

break

;case2:

aboutus()

;break;}

printf()

; function =

input_judgefun

(function);}

printf

("感謝使用!\n");

}//輸入資料, 邊輸入邊排序進鍊表

intinputdataandsortingdata

(polylist polynomial,

int n)

int i;

polylist q, p;

q =(polylist)

malloc

(sizeof

(polynode));

p =(polylist)

malloc

(sizeof

(polynode));

printf

("請依次輸入每一項的係數和指數:\n");

for(i =

1; i <= n; i++)if

(!(polynomial->next)

)else

else

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

// p、q 指標後移

q = q->next;

p = p->next;}if

(!p)}}

return ok;

}//將兩個多項式相加,線性表合併演算法

void

polynomialadd

(polylist a, polylist b)

else

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

else

}else}if

(p)else

free

(b);

//釋放 b 鍊錶所佔的記憶體

}//初始化多項式鍊錶

void

init

(polylist& x)

// 輸出計算結果

void

displayresult

(polylist a)

else

while

(p)else

if(p->next !=

null

&& p->exp ==

1&& p->coef !=1)

else

if(p->next !=

null

&& p->exp !=

1&& p->coef ==1)

else

if(p->next !=

null

&& p->exp ==

1&& p->coef ==1)

else

if(p->next !=

null

&& p->exp ==0)

else

if(p->next ==

null

&& p->exp ==0)

else

if(p->next ==

null

&& p->exp !=

1&& p->coef !=1)

else

if(p->next ==

null

&& p->exp ==

1&& p->coef !=1)

else

if(p->next ==

null

&& p->exp !=

1&& p->coef ==1)

else

if(p->next ==

null

&& p->exp ==

1&& p->coef ==1)

temp = p;

p = p->next;

free

(temp)

;// 依次釋放每個節點的記憶體

}free

(a);

// 釋放 a 節點

printf

("\n");

}// 指令輸入與判斷

intinput_judgefun

(int function)

return function;

}// 顯示選單

void

menu()

void

aboutus()

如有不足,請多指教。

一元稀疏多項式計算器

實驗 一元稀疏多項式計算器 一 實驗目的 1.了解線性表的鏈式儲存結構,熟練掌握鍊錶。2.了解作為鍊錶的多項式存貯方式。3.熟悉掌握多項式加法的演算法。二 實驗原理 順序儲存的線性表有一些弱點,其一,插入與刪除元素需要大量移動元素 其二,預先分配儲存空間時必須按最大的空間來分配。其三,表長難以擴充。...

一元多項式加法計算器

include include typedef struct polynode polynode,polylist 輸入資料,邊輸入邊排序進鍊表 void inputdataandsortingdata polylist polynomial,int n 初始化多項式鍊錶 void init pol...

一元稀疏多項式計算器(加減)

思路 1.首先是建立鍊錶,再儲存資料。2.進行多項式的運算。通過每一項的比較,判斷指數是否相等,相等就進行合併,不相等就不操作並找到下一項。這道題主要是考察了鍊錶的操作,估計很多人都會被繞暈了,不知道指標指向了 我已開始也敗在了指向問題上,在加法操作中,把pa,pb鍊錶記憶體的資料元素全都改變了,又...