3379 資料結構實驗之查詢七 線性之雜湊表

2021-08-13 20:40:22 字數 1121 閱讀 9567

3379 資料結構實驗之查詢七:線性之雜湊表

time limit: 1000ms

memory limit: 65536kb

problem description

根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h(key)=key%p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重複關鍵字放在hash表中的同一位置。

input

連續輸入多組資料,每組輸入資料第一行為兩個正整數n(n <= 1500)和p(p >= n的最小素數),n是關鍵字總數,p是hash表長度,第2行給出n個正整數關鍵字,數字間以空格間隔。

output

輸出每個關鍵字在hash表中的位置,以空格間隔。注意最後乙個數字後面不要有空格。

example input

5 5

21 21 21 21 21

4 524 15 61 88

4 524 39 61 15

5 524 39 61 15 39

example output

1 1 1 1 1

4 0 1 3

4 0 1 2

4 0 1 2 0

這個題目考察了雜湊表另一種處理衝突的方式,線性探測,也就是如果當前的下標x=hash(key)已經有元素已經放進去了,就去x+1, x+2……依次

查詢,直到找到乙個沒有放進去的下標,由於此題輸入的資料中存在相同的元素,所以在查詢hash(key)的下標下已經放進元素時,要判斷一下是否

是相同的元素,相同的元素放在相同的位置即可。

#include #include using namespace std;

int main(){

int hash[1500];

int n, k, i;

while(cin>>n>>k){

memset(hash, -1, sizeof(hash));

for(i = 0; i < n; i++){

int x, t;

cin>>x;

t = x%k;

if(hash[t] == -1){

cout<

3379資料結構實驗之查詢七 線性之雜湊表

資料結構實驗之查詢七 線性之雜湊表 problem description 根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h key key p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重複關鍵字放在hash表中的同一位置。input 連續輸入多組資料,每組輸入資料...

SDUTACM 資料結構實驗之查詢七 線性之雜湊表

根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h key key p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重複關鍵字放在hash表中的同一位置。連續輸入多組資料,每組輸入資料第一行為兩個正整數n n 1000 和p p n的最小素數 n是關鍵字總數,p是hash...

資料結構實驗之查詢七 線性之雜湊表

time limit 1000ms memory limit 65536k 有疑問?點這裡 根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h key key p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重複關鍵字放在hash表中的同一位置。連續輸入多組資料,每組輸入...