package DataStructures.HashMap.Hashing;public class HashMap {private int hsize;private LinkedList[] buckets;public HashMap(int hsize) {buckets = new LinkedList[hsize];for (int i = 0; i < hsize; i++) {buckets[i] = new LinkedList();// Java requires explicit initialisaton of each object}this.hsize = hsize;}public int hashing(int key) {int hash = key % hsize;if (hash < 0)hash += hsize;return hash;}public void insertHash(int key) {int hash = hashing(key);buckets[hash].insert(key);}public void deleteHash(int key) {int hash = hashing(key);buckets[hash].delete(key);}public void displayHashtable() {for (int i = 0; i < hsize; i++) {System.out.printf("Bucket %d :", i);System.out.println(buckets[i].display());}}public static class LinkedList {private Node first;public LinkedList() {first = null;}public void insert(int key){if(isEmpty()) {first = new Node(key);return;}Node temp = findEnd(first);temp.setNext(new Node(key));}private Node findEnd(Node n) {if(n.getNext() == null) {return n;} else {return findEnd(n.getNext());}}public Node findKey(int key) {if(!isEmpty()) {return findKey(first, key);} else {System.out.println("List is empty");return null;}}private Node findKey(Node n, int key) {if(n.getKey() == key) {return n;} else if(n.getNext() == null) {System.out.println("Key not found");return null;} else {return findKey(n.getNext(),key);}}public void delete(int key) {if(!isEmpty()) {if(first.getKey() == key) {first = null;} else {delete(first,key);}} else {System.out.println("List is empty");}}private void delete(Node n, int key) {if(n.getNext().getKey() == key) {if(n.getNext().getNext() == null) {n.setNext(null);} else {n.setNext(n.getNext().getNext());}}}public String display() {return display(first);}private String display(Node n) {if(n == null) {return "null";} else {return n.getKey() + "->" + display(n.getNext());}}public boolean isEmpty() {return first == null;}}public static class Node {private Node next;private int key;public Node(int key) {next = null;this.key = key;}public Node getNext() {return next;}public int getKey() {return key;}public void setNext(Node next) {this.next = next;}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。