⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seq_hash_search.c

📁 哈希表操作
💻 C
字号:
//闭散列表上查找元素
#include <stdio.h>

#define MAXSIZE 100
#define KEYTYPE int 

typedef struct node
{
    KEYTYPE key;
}HASHTABLE;

int seq_hash_search(KEYTYPE k,HASHTABLE *st)
{
	//闭散列表上查找元素
	int i,j;
	i=0;
	j=k%13;//哈希函数:ADD(rec(key))=key MOD 13
	while(i<16&&st[j].key!=k&&st[j].key!=-99)
	{
		i++;
		j=(j+1)%16;
	}
	if(st[j].key!=k) return 0;
	else return 1;
}

void print_hash_table(HASHTABLE *st)
{
	//显示闭散列表
	int i;
	for(i=0;i<16;i++) printf("%4d",i);
	printf("\n\n");
	for(i=0;i<16;i++) printf("%4d",st[i].key);
	printf("\n\n");
}

main()
{
	HASHTABLE a[16];
	int i,j,k;
	printf("\n建立闭散列表\n\n");
 	printf("请输入闭散列表元素关键字值,关键字为正整型量,用空格分开,-99为结束标志:\n");  
	for(j=0;j<16;j++)
		a[j].key=-99;
    scanf("%d",&i);
    while(i!=-99)
	{
		k=i%13;
		if(a[k].key==-99)a[k].key=i;
		else
		{
			k=(k+1)%16;
			while(a[k].key==-99) a[k].key=i;
		}
		scanf("%d",&i);//输入哈希表元素关键字值
	}
	printf("显示建立的哈希列表:\n\n");
	print_hash_table(a);
	printf("\n");
	printf("\n输入待查元素关键字:");
	scanf("%d",&i);
	k=seq_hash_search(i,a);
	if(k==0)printf("表中待查元素不存在。\n\n");
    else  printf("表中待查元素存在。\n\n");	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -