用雜湊表合併兩個多項式乘積的同類項

2021-10-04 05:18:55 字數 1698 閱讀 3416

/*該程式利用雜湊的方式將兩個稀疏多項式相乘後合併同類項*/

/*雜湊表的建立使用了分離鏈結法*/

#include

#include

#define hashmodulus 11

//雜湊函式的模數

/*多項式的例程*/

typedef

struct node *polynomial;

typedef

struct node *position;

struct node

;polynomial insert

(int coefficient,

int power, polynomial p)

;//插入元素到乙個多項式

/*雜湊的例程*/

typedef

unsigned

int index;

typedef

struct hashtbl *hashtable;

struct hashtbl

;hashtable initialize

(hashtable h)

;index hash

(int power)

;polynomial sortandinserttoc

(hashtable h, polynomial c)

;int

main()

firstofa = firstofa->next;

}/*將結果排序*/

c =sortandinserttoc

(h, c)

; position posc = c->next;

while

(posc !=

null

)return0;

}polynomial insert

(int coefficient,

int power, polynomial p)

//插入元素到乙個多項式

else

if(p ==

null

)else

p->next = tmpcell;

}else

else

if(pos->power > power)

beforepos = pos;

pos = pos->next;

}else

if(pos->power < power)}}

}return p;

}hashtable initialize

(hashtable h)

else

else

else

h->thelist[i]

->next =

null;}

}}return h;

}index hash

(int power)

polynomial sortandinserttoc

(hashtable h, polynomial c)

c->next =

null;}

for(i =

0; i < hashmodulus; i++)}

return c;

}

用鍊錶計算兩個多項式的和

看嚴蔚敏的 資料結構 的書,第二章講鍊錶的時候介紹可以用鍊錶來儲存多項式的每一項 係數和指數 然後計算兩個多項式的加減乘除,於是用c語言實現了其中的多項式加法的操作,這裡把程式介紹一下。首先是定義資料結構儲存多項式的一項。typedef struct polyitem polyitem,ppolyi...

兩個多項式相加!

以下是本人用單鏈表所編寫的兩個多項式相加的程式,不知為何在turboc2.0上執行總有兩個errors,而且都是 declaration syntax error 還請業內高手指導!謝謝!include math.h include stdio.h typedef struct node polyn...

兩個多項式求和

提到多項式想必定會想到其係數和指數,定義資料結構typedef struct polynomialpolynomial,linklist 之所以運用單鏈表實現該功能是因為會涉及資料的插入與刪除等操作,單鏈錶比順序表靈活 方便。當在進行相加功能操作時,要比較當前指標所指結點的指數大小,如果不相等,就將...