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

2021-07-16 22:09:43 字數 647 閱讀 5549

給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應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

話不多說了,直接上**:

/*a、c用來儲存輸入的數,b來儲存餘數*/

#include#includeint main()

{ int n,p,i,a[1000],c[1000],b[1000],k;

while(scanf("%d%d",&n,&p)!=eof)

{memset(a,-1,sizeof(a));

for(i=0;i

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

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

SDUTACM 資料結構實驗之排序四 尋找大富翁

2015胡潤全球財富榜調查顯示,個人資產在1000萬以上的高淨值人群達到200萬人,假設給出n個人的個人資產值,請你快速找出排前m位的大富翁。首先輸入兩個正整數n n 10 6 和m m 10 其中n為總人數,m為需要找出的大富翁數目,接下來給出n個人的個人資產,以萬元為單位,個人資產數字為正整數,...

sdutacm 資料結構實驗之查詢一 二叉排序樹

資料結構實驗之查詢一 二叉排序樹 timelimit 400ms memory limit 65536kb submit statistic problem description 對應給定的乙個序列可以唯一確定一棵二叉排序樹。然而,一棵給定的二叉排序樹卻可以由多種不同的序列得到。例如分別按照序列 ...