題目
問題 a: ds雜湊查詢—線性探測再雜湊
時間限制:
1 sec 記憶體限制:
128 mb
提交:454 解決:
303[提交]
[狀態]
[討論版]
題目描述
定義雜湊函式為h
(key)
= key%
11,輸入表長(大於、等於11)。輸入關鍵字集合,用線性探測再雜湊構建雜湊表,並查詢給定關鍵字。
--程式要求--
若使用c++只能include乙個標頭檔案iostream;若使用c語言只能include乙個標頭檔案stdio
程式中若include多過乙個標頭檔案,不看**,作0分處理
不允許使用第三方物件或函式實現本題的要求
輸入 測試次數t
每組測試資料為:
雜湊表長m、關鍵字個數n
n個關鍵字
查詢次數k
k個待查關鍵字
輸出對每組測試資料,輸出以下資訊:
構造的雜湊表資訊,陣列中沒有關鍵字的位置輸出null
對k個待查關鍵字,分別輸出:0或1(0—不成功,1—成功)、比較次數、查詢成功的位置(從1開始)
樣例輸入112
1022
192189
3033415
1442256
3017
樣例輸出
2230
3314415
null
null198
21911
1061
6201
**塊#include
using
namespace std;
intmain
(void
) temp =
(temp+1)
%m;}
}for
(i=0
; i)else
}int k;
cin>>k;
for(i=
0; i)elseif(
!s[temp]
)else
temp =
(temp+1)
%m;}
if(j!=m && s[temp]
)elseif(
!s[temp]
) cout<1
cout<<
"0 "
<}
線性探測可再雜湊的雜湊
資料結構與演算法分析 c語言描述 第五章 分離鏈結雜湊表 從書上的 小改一下。插入的時候自動選擇是否再雜湊,所以insert要返回乙個hashtable。還有增加是否查抄成功。雖然可以通過返回 1來返回查詢失敗 hashquad.h typedef char elementtype ifndef h...
雜湊 線性探測法
time limit 1 secs,memory limit 256 mb 使用線性探測 法 linear probin g 可以解決雜湊中的衝突問題,其基本思想是 設雜湊函式為 h key d,並且假定雜湊的儲存結構是迴圈陣列 則當衝突發生時 繼續探測 d 1,d 2 直到衝突得到解決 例如,現有...
POJ 1186 hash 線性探測再雜湊
一直以來我都覺得線性探測再雜湊這個方法一定很低效 結果碰到今天這題之後我驚奇的發現 鍊錶居然被線性探測再雜湊秒殺了 這個hash方法是將大數取模,放到乙個位置上,如果這個位置被占用了,就往後移1格,再被佔再移動知道能 放到某個位置上。詳細見資料結構書 真是太神奇了 懶得寫dfs 直接for的 所以 ...