整型關鍵字的散列映射

7-1 整型關鍵字的散列映射(25 分)

給定一系列整型關鍵字和素數P,用除留餘數法定義的散列函數將關鍵字映射到長度爲P的散列表中。用線性探測法解決衝突。

輸入格式:

輸入第一行首先給出兩個正整數N1000)和PN的最小素數),分別爲待插入的關鍵字總數、以及散列表的長度。第二行給出N個整型關鍵字。數字間以空格分隔。

輸出格式:

在一行內輸出每個整型關鍵字在散列表中的位置。數字間以空格分隔,但行末尾不得有多餘空格。

輸入樣例:

4 5
24 15 61 88

輸出樣例:

4 0 1 3
說到這題,出題者倒是不知道怎麼想的,非得要咱們分配一下內存,才讓過,emmmm,這麼簡單估計你自己也能用數組作對吧。
#include<stdio.h>
#include<stdlib.h>

int main()
{
	int i, n, m, j=0, c, t, u;
	scanf("%d %d", &n, &m);
	int *s = (int *)malloc(sizeof(int)*m);//其實這裏你直接改s[1001]輸出還是一樣的,不過既然題目是數據結構,那就分配一下空間吧
	
	for( i=0; i<n; i++ )
	{
		scanf("%d", &j);
		t = j%m;
		c=0;
		   while( c<=i&&c<=n )
		   {
		   	if( 5==t )
		    t=0;
		   	if( s[c]==t )
		   	t++;
		   	c++;
		   }
		   if( t<m )
		   {
		   	printf("%d", t);
		   	if(i < n-1)
		   	printf(" ");
		    s[i] = t;
		   }
	}
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章