[데이터 구조] Hash 표 초학 (주소 지정 법 개방)

/*
Name:Hash    (             )

Actor:HT

Time:2015 9 29 

Error Reporte:	

*/

#include"stdio.h"
#include"string.h"
#include"stdlib.h"


int hash[9000];		
int value[9000];

int f1(int x)
{
	return x % 8997;
}
int f2(int x)
{
	return x % 8996;
}

int fhash(int x,int t)	//hash  
{
	return f1(x)+t*f2(x);
}

void add(int x)		//  
{
	int i,j;
	for (i = 0; hash[fhash(x, i)] != 0; i++)
	{}
	hash[fhash(x, i)] = 1;	//    
	value[fhash(x, i)] = x;
}

void serach(int x)//  
{
	int i;
	for (i = 0; hash[fhash(x, i)] != 0; i++)
	{
		if (value[fhash(x, i)] == x)
		{
			printf("find it!
"); return; } } printf("
"); } void vis() { int i; int temp; for (i = 0; i < 9000; i++) { if (hash[i] == 0) continue; printf("%d
", value[i]); } } int main() { memset(hash, 0, sizeof(hash)); memset(value, 0, sizeof(value)); for (int i = 1; i < 5; i++) { add(i); } vis(); system("pause"); return 0; }

좋은 웹페이지 즐겨찾기