HashTable简单实现思路
来源:互联网 发布:datestatus js 编辑:程序博客网 时间:2024/05/16 02:04
<span style="font-size:24px;">package com.liebao32;public class HashTable {private DataItem hashArray[];private int arraySize;private DataItem noneItem;public HashTable(int size){arraySize = size;hashArray = new DataItem[arraySize];noneItem = new DataItem(-1);}public void displayTable(){System.out.print("Table:");for(int i=0;i<arraySize;i++){if(hashArray[i]!=null){System.out.print(hashArray[i].getKey()+" ");}else {System.out.print(" ** ");}}System.out.println();}public int hashFunc(int key){return key%arraySize;}public void insert(DataItem item){int key = item.getKey();int hashVal = hashFunc(key);while(hashArray[hashVal]!=null && hashArray[hashVal].getKey()!=-1){hashVal++;hashVal = hashVal%arraySize;}hashArray[hashVal] = item;}public DataItem delete(int key){int hashVal = hashFunc(key);while(hashArray[hashVal]!=null){if(hashArray[hashVal].getKey()==key){DataItem tmp = hashArray[hashVal];hashArray[hashVal] = noneItem;return tmp;}hashVal++;hashVal = hashVal%arraySize;}return null;}public DataItem find(int key){int hashVal = hashFunc(key);while(hashArray[hashVal]!=null){if(hashArray[hashVal].getKey()==key){return hashArray[hashVal];}hashVal++;hashVal = hashVal%arraySize;}return null;}}</span>
<span style="font-size:24px;"></span>
<span style="font-size:24px;">测试:</span>
<span style="font-size:24px;"></span><pre name="code" class="java">package com.liebao32;import java.io.*;public class HashTableApp {public static void main(String[] args) throws Exception {DataItem item ;int key,size,n,keysPerCell;System.out.print("Enter size of hash table: ");size = getInt();System.out.print("Enter initial number of item: ");n = getInt();keysPerCell = 10;HashTable table = new HashTable(size);for(int i=0;i<n;i++){key = (int)(Math.random()*keysPerCell*size);item = new DataItem(key);table.insert(item);}while(true){System.out.println("Enter first letter of show,insert,delete,find:");char choice = getChar();switch (choice) {case 's':table.displayTable();break;case 'i':System.out.print("Enter key value to insert :");key = getInt();item = new DataItem(key);table.insert(item);break;case 'd':System.out.print("Enter key value to delete :");key = getInt();table.delete(key);break;case 'f':System.out.print("Enter key value to find :");key = getInt();item = table.find(key);if(item!=null){System.out.println("Find: "+key);}else{System.out.println("Could not find: "+key);}break;default:System.out.print("Invalid entry\n");}}}public static String getString() throws Exception{InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);return br.readLine();}public static char getChar() throws Exception{return getString().charAt(0);}public static int getInt() throws Exception{return Integer.parseInt(getString());}}
0 0
- HashTable简单实现思路
- hashtable简单实现
- 记事本简单实现思路
- java实现简单的hashTable
- hashtable模板的简单实现
- STL 简单 hashtable 的实现
- 实现一个简单的HashTable
- Java 一个简单Hashtable的实现
- C语言的HashTable简单实现
- HashTable的简单实现(C语言)
- C语言的HashTable简单实现
- C语言的HashTable简单实现
- 哈希表(hashtable)的javascript简单实现
- hashtable模板的简单实现(二)
- javascript 哈希表(hashtable)的简单实现
- C++复习之HashTable的简单实现
- HashTable(分离链接法)简单实现
- C语言的HashTable简单实现
- 程序员智力题笔试
- 51页12题
- iOS开发中的控制器-UIViewController-
- centos7 python 虚拟环境
- 【SICP练习】128 练习3.59
- HashTable简单实现思路
- oracle迷你客户端 toad免安装oracle
- 在VirtualBox上配置ubuntu网络
- 测试驱动开发
- python多线程multiprocessing
- Firebreath3——Firebreath架构
- TDDL、Amoeba、Cobar、MyCAT架构比较
- SQL 常用语句
- contentprovider的学习实例总结