多項式用鍊錶儲存,設多項式的最高次為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 ...