宣告
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 由於每次輸入時都是乙個節點 多項式的某...