一般多項式的計算(鍊錶)

2021-09-22 08:00:49 字數 1196 閱讀 7225

/* 很久以前寫的,如果有錯誤請告訴我!*/

/* 案例2.2:使用單鏈表進行兩個稀疏(一般)多項式的相加運算

a(x)=7+3x+9x8+5x17

b(x)=8x+22x7-9x8

[分析]每個鍊錶儲存多項式中的乙個非零項,包括係數coef、指數expn

兩個資料域以及乙個指標域,指數相同則對應係數相加,不為零插入lc

為零釋放兩結點;指數不相同則將指數較小者插入lc */

#include

#include

#include

#include

#include

#include

#define ok 1

#define error 0

#define x 3

typedef

int status;

typedef

struct pnode

pnode,

*polynomial;

//多項式

status createpolyn

(polynomial &p,

int n)

s->next=q;

pre->next=s;

}return ok;

}/*[演算法分析]最壞情況下第n次迴圈需要做n次比較

因此時間複雜度為○(n^2)

*/pnode *

addpolyn

(polynomial &pa,polynomial &pb)

else

}else

if(p1->expnexpn)

else

}p3->next=p1?p1:p2;

delete pb;

//釋放b的頭結點

return p3;

}/*[演算法分析]時間複雜度為○(m+n)空間複雜度為○(1)*/

float

calcupolyn

(polynomial &p)

sum=sum+s->coef*x;

s=s->next;

}return sum;

}status listshow

(polynomial p)

return ok;

}void

main()

// # 多項式的相加 #

鍊錶的多項式加法鍊錶的多項式加法

老師給的模板看的我不要不要的,真心難看,看了很久才把過載加法搞定了。include using namespace std include 定義結點類 用於表示多項式的一項 class node node int nexp,int ncoef private int exp 指數 int coef ...

鍊錶多項式求和

雖然很簡單,但是還是花了我2個多小時才完成,哎.對於兩個一元多項式所有指數相同的項,對應係數相加 若其和不為零,則作為和多項式的一項插入到和多項式鍊錶中去 如指數不相同,則將指數數值較小的插入到和多項式鍊錶中去 注意 多項式鍊錶中的節點不需生成,而應該從兩個多項式鍊錶中摘取 include usin...

多項式求和 鍊錶

此題有乙個坑,就是因為數太大會超時,但試幾組資料就會發現,當它到一定的數時,結果就不變了,可以縮小計算範圍 多項式求和 time limit 1000ms memory limit 65536k 多項式描述如下 1 1 2 1 3 1 4 1 5 1 6 先請你求出多項式前n項的和。第一行輸入乙個數...