散列表Java实现
2016-02-18 15:55
519 查看
package 散列表; import java.util.Scanner; public class HashSearch { public static int data[] = {69,65,90,37,92,6,28,54}; public static int hash[] = new int[13]; //将关键字插入到散列表中 public static void insertHash(int hash[],int m,int data){ int i = 0; i = data%13;//计算散列位置 while (hash[i] >0) {//位置已经被占用 i = (++i)%m;//先行探索解决冲突 } hash[i] = data; } //创建散列表 public static void createHash(int hash[],int m,int data[],int n){ for (int i = 0;i<hash.length;i++) { hash[i] = 0; } for (int i = 0;i<n;i++) { insertHash(hash, m, data[i]); } } //散列表的查找函数的编写 public static int hashSearch(int [] hash,int m,int key){ int i = 0; i = key%13; while (hash[i] > 0 && hash[i] != key) {//判断是不是冲突 i = (++i)%m; } if (hash[i] == 0) { return -1; }else{ return i; } } public static void main(String[] args) { Scanner input = new Scanner(System.in); //调用函数创建散列表 createHash(hash, 13, data, 8); System.out.println("散列表各元素的值:"); for(int i = 0;i<13;i++){ System.out.print(hash[i]+" "); } System.out.println(); System.out.println("输入查找的关键字"); int key = input.nextInt(); int pos = hashSearch(hash, 13, key); if (pos > 0) { System.out.printf("查找成功,该关键字位于数组的第%d个位置\n",pos); }else{ System.out.println("查找失败!"); } } }
相关文章推荐
- spring aop 获取拦截类中的属性的值
- java内存参数
- Redkale -- 全新的Java微服务框架
- Eclipse下BASE64Decoder提示错误的解决办法
- Java带进度多线程下载文件
- Java学习笔记
- JMS【四】--Spring和ActiveMQ整合的完整实例
- java 控制台 输入字符串
- 第六章 软键盘事件
- JDK各版本新特性
- 笔记-Java线程概述
- JSP处理JavaBean
- java实现以类为对象把各属性值放入map
- hdu 2031 java
- 启动eclipse报错:Failed to load the JNI shared library
- 自己动手写个spring IOC容器
- 为什么Java接口里使用public static final修饰成员变量
- java虚拟机——深入java虚拟机(二)——类加载器详解(上)
- 阿里校园招聘对java本科生的要求
- 第一章 Eclipse打开出现问题