實驗 雜湊表線性探測再雜湊
阿新 • • 發佈:2019-02-02
將上面的資料利用長度為15的雜湊表儲存,輸出儲存後的雜湊表。雜湊函式採用key%13,用線性探測再雜湊解決衝突,設計並實現查詢運算。
程式碼:
#include <bits/stdc++.h> using namespace std; const int MAXN=15; typedef struct HashList{ int elem[MAXN],mod; HashList(){ for(int i=0;i<MAXN;i++) elem[i]=-1; mod=13; } public: int Insert(int x){ int pos=x%mod; while(elem[pos]!=-1) pos=(pos+1)%mod; elem[pos]=x; return pos; } void show(){ for(int i=0;i<mod;i++) cout<<elem[i]<<' '; cout<<endl; } int Find(int x){ int pos=x%mod; while(elem[pos]!=x) pos=(pos+1)%mod; elem[pos]=x; return pos; } }HashList; int main() { srand((unsigned long long)time(0)); int a[10]={90 ,92 ,41 ,2 ,4 ,29 ,73 ,87 ,11 ,77}; HashList b; for(int i=0;i<10;i++){ b.Insert(a[i]); b.show(); } cout<<a[3]<<' '<<b.Find(a[3])<<endl; }