資料結構實驗之查詢五 平方之雜湊表

2021-07-16 17:58:41 字數 1172 閱讀 9247

time limit: 400ms   memory limit: 65536k  有疑問?點這裡^_^

給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h(key)=key%p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di=±i^2,i=1,2,3,...,m-1

輸入一組測試資料,資料的第1行給出兩個正整數n(n <= 500)和p(p >= 2n的最小素數),n是要插入到雜湊表的元素個數,p是雜湊表表長;第2行給出n個無重複元素的正整數,資料之間用空格間隔。

按輸入資料的順序輸出各數在雜湊表中的儲存位置 (hash表下標從0開始),資料之間以空格間隔,以平方探測方法處理衝突。

4 11

10 6 4 15

9 11

47 7 29 11 9 84 54 20 30

10 6 4 5

3 7 8 0 9 6 10 2 1

#includeusing namespace std;

#define hashsize 1010 //定義雜湊表長度

#define nullkey -32768 //定義雜湊表中的初值

typedef struct

hashtable;

int m=0;

int init_hash_table(hashtable *l,int p) //雜湊表初始化,p是輸入的表的長度

return 0;

}int hash(int data) //雜湊函式,返回求得的位址

int insert(hashtable *l,int data) //插入資料

i++;

}l->elem[addr]=data;

}//查詢

int search(hashtable *l,int data)//雜湊查詢函式

if(l->elem[addr]==nullkey||addr==hash(data)) //沒找到的話返回-1

return -1;

i++;

}return addr; //找到返回該值所在位址

}int main()

for(int j =0;jelse

cout<}

}return 0;

}

資料結構實驗之查詢五 平方之雜湊表

time limit 400ms memory limit 65536k 給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h key key p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di i 2,i 1,2,3,m 1 輸入一組測試資料,資料...

資料結構實驗之查詢五 平方之雜湊表

time limit 400ms memory limit 65536k 給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h key key p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di i 2,i 1,2,3,m 1 輸入一組測試資料,資料...

資料結構實驗之查詢五 平方之雜湊表

time limit 400ms memory limit 65536k 給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h key key p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di i 2,i 1,2,3,m 1 輸入一組測試資料,資料...