雜湊表儲存多項式鍊錶相乘的結果

2022-07-19 15:45:28 字數 1081 閱讀 2450

多項式用鍊錶儲存,設多項式的最高次為m和n,則申請乙個大小為m+1+n的雜湊表,其中m+1+n不必是素數,用結果多項式的階次對m+1+n取餘作為雜湊函式,可以把多項式第i階次項的係數儲存在雜湊表第i項上,方便後續重建多項式的鍊錶。

// sparse_polynomial.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#includeusing namespace std;

struct listnode; //宣告存多項式的鍊錶

typedef struct listnode *list;

struct hashtbl; //用於存結果的雜湊表,大小為m+n

typedef struct hashtbl *hashtable;

struct listnode

;list initializelist(char tag, int n) //鍊錶初始化函式

return l;

}void printlist(list l) //多項式列印函式

cout << endl;

}struct hashtbl

;hashtable initializetable(int tablesize) //初始化雜湊表

int hash(int key, int tablesize)

hashtable multiplication(const list a, const list b) //用雜湊表儲存乘法的結果

nodea = nodea->next;

} return h;

}list makeresultlist(hashtable h) //檢測雜湊表中不為0的項存在結果鍊錶上

return resultlist;

}int main()

鍊錶實現多項式相乘

參考文章 自己敲了一遍,先mark一下,以後理解可能會更深一點。亮點在於對第二個多項式進行了逆反。include includetypedef struct node listnode listnode createlist int n 建立鍊錶 int printlist listnode hea...

單向鍊錶 練習3 7 多項式相乘

3.7 編寫乙個函式將兩個多項式相乘,用乙個鍊錶實現。你必須保證輸出的多項式按冪次排列並且最多有一項為任意冪。多項式相乘 position multiply2pol position h1,position h2 排序合併 mpsort h,size return h 氣泡排序多項式,按照項的次數從...

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

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