哈希表(链地址法处理冲突)(oj 1012)(歪门做法:二维数组)

本文介绍了一种使用哈希表进行数据存储和查找的方法。通过定义哈希函数,将关键字映射到哈希表中,实现了对关键字的快速查找。代码示例展示了如何创建一个二维数组作为哈希表,如何插入关键字以及如何根据关键字进行查找。
#include<stdio.h>
int main()
{
 int i,j=0,a[50][10]={0},m,n,key,b[50]={0};    //m为哈希表长度,n为关键字的个数
 scanf("%d %d",&m,&n);
 for(i=0;i<n;i++)
 {
  scanf("%d",&key);
  a[key%m][b[key%m]++]=key;               //将同一类型关键字放入同一行。
 }
 scanf("%d",&key);
 for(i=0;i<n;i++)
 {
  if(a[key%m][i]==key){
   printf("%d,%d",key%m,i+1);                       //查找对应的关键字时直接遍历该行数,并输出在二维数组中所在位置与查找次数
   j++;
   break;
  }
 }
 if(j==0) printf("-1");                                  //如果没有找到,则输出-1
 return 0;
}`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值