hash表

来源:互联网 发布:富士康java工程师 编辑:程序博客网 时间:2024/06/06 03:49

Hash表: http://www.cnblogs.com/dolphin0520/archive/2012/09/28/2700000.html

java实现:

package test;public class HashTable {private HashNode hashNode[] = new HashNode[14];public HashTable() {for(int i=0; i<14; i++) {hashNode[i] = new HashNode();}}public static void main(String[] args) {HashTable hashTable = new HashTable();int a[] = { 23, 12, 14, 2, 3, 5 };for (int i = 0; i < a.length; i++) {hashTable.insert(a[i]);}for (int i = 0; i < a.length; i++) {hashTable.find(a[i]);}}private void find(int key) {int address = getAddress(key);while(hashNode[address].isNull != 0 && hashNode[address].data != key && address<14) {address++;}System.out.println(hashNode[address].data);}private int getAddress(int key) {return key % 11;}private int insert(int key) {int address = getAddress(key);if (hashNode[address].isNull == 0) {hashNode[address].data = key;hashNode[address].isNull = 1;} else {while (hashNode[address].isNull == 1 && address < 14) {address++;}if (address == 13) {return -1;}hashNode[address].data = key;hashNode[address].isNull = 1;}return 0;}void init() {for (int i = 0; i < 14; i++) {hashNode[i].isNull = 0;}}}class HashNode {public int data; // 存储值public int isNull;// 是否为空public HashNode() {this.data = 0;this.isNull = 0;}}


0 0
原创粉丝点击