c語言,利用鍊錶實現多項式合併相關例程

2021-10-03 18:57:33 字數 1460 閱讀 9831

宣告

struct node;

typedef

struct node* item;

typedef

struct node* list;

typedef

struct

node node;

我們只考慮同變數的多項式不考慮多種變數且我們只考慮加減運算,故我們需要記錄項的前置符號(正負號)、係數、次方。

製造乙個空的表頭,並返回表頭位址

list make()

同樣由於賦值操作繁瑣,為了**大簡明性,我們將賦值操作交給乙個函式

item evaluation

(item y,

char sym,

int x,

int pow)

這樣來看我們的插入例程相對簡單的多

void

insert

(list xu)

}

換行符的ascii的值為『11』

我們利用氣泡排序對錶依據冪排序

while

(temp->next !=

null

) temp = temp->next;

}for

(int k =

0; k < length -

2; k++

) temp = temp->next;}}

}

我們這裡直接簡單粗暴的交換值,因為我們如果使用位址會失去**的簡明性,且不會優化很多,我們執行的一次delete(刪除)操作,一次插入操作。我們給出可以替換此例程的一部分

void

rank2

(list xu)

temp = temp->next;

}}

我們利用了,頭指標為null的特點;

合併操作

void

combine

(list xu, list jie)

temp->next = jie->next;

rank

(xu)

; item yao=xu->next;

while

(yao->next !=

null

)else

yao->next = yao->next->next;}}

else yao = yao->next;

//臨時指標後移一位

}}

我們將兩個多項式合併之後排序,然後我們一次檢驗相鄰的兩項是否可以合併,可以合併的那些,我們合併之後刪除後者,並繼續執行判斷操作。若無法合併,指標後移。

C語言鍊錶實現多項式加法乘法

資料結構 浙大版 多項式小記 include include typedef struct polynode polynomial struct polynode int compare int p1,int p2 void attach int c,int e,polynomial prear p...

C 鍊錶實現多項式加法

include include typedef struct polynode polynode,polylist 初始化多項式 bool initpoly polylist poly 二級指標 外插法建立一元多項式單鏈表,n代表多項式非零係數的個數 void polycreate polylist...

c 鍊錶實現多項式相加

測試 測試結果 例如,已知多項式l 1l 1 l1 l 2l 2 l2 如下 l 1 4x 5 3x 4 2x 2 x 6 l 2 6x 7 5x 4 3x 3 7x end node,list 為鍊錶建立乙個頭結點,便於表示 void init list l 由於每次輸入時都是乙個節點 多項式的某...