changes
This commit is contained in:
parent
26998e2815
commit
2065642099
39
Data Structures/HashMap/Hashing/HashMap.java
Normal file
39
Data Structures/HashMap/Hashing/HashMap.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
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);
|
||||||
|
buckets[i].display();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
62
Data Structures/HashMap/Hashing/LinkedList.java
Normal file
62
Data Structures/HashMap/Hashing/LinkedList.java
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
class LinkedList {
|
||||||
|
|
||||||
|
private Node Head;
|
||||||
|
private int size;
|
||||||
|
|
||||||
|
public LinkedList() {
|
||||||
|
Head = null;
|
||||||
|
size = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void insert(int data) {
|
||||||
|
|
||||||
|
Node temp = Head;
|
||||||
|
Node newnode = new Node(data);
|
||||||
|
|
||||||
|
size++;
|
||||||
|
|
||||||
|
if(Head == null) {
|
||||||
|
Head = newnode;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
newnode.next = Head;
|
||||||
|
Head = newnode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void delete(int data) {
|
||||||
|
if(size == 0) {
|
||||||
|
System.out.println("UnderFlow!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
Node curr = Head;
|
||||||
|
if (curr.data == data) {
|
||||||
|
Head = curr.next;
|
||||||
|
size--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
while(curr.next.next != null) {
|
||||||
|
if(curr.next.data == data){
|
||||||
|
curr.next = curr.next.next;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Key not Found");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void display() {
|
||||||
|
Node temp = Head;
|
||||||
|
while(temp != null) {
|
||||||
|
System.out.printf("%d ",temp.data);
|
||||||
|
temp = temp.next;
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
}
|
45
Data Structures/HashMap/Hashing/Main.java
Normal file
45
Data Structures/HashMap/Hashing/Main.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
int choice, key;
|
||||||
|
|
||||||
|
HashMap h = new HashMap(7);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
System.out.println("Enter your Choice :");
|
||||||
|
System.out.println("1. Add Key");
|
||||||
|
System.out.println("2. Delete Key");
|
||||||
|
System.out.println("3. Print Table");
|
||||||
|
System.out.println("4. Exit");
|
||||||
|
|
||||||
|
Scanner In = new Scanner(System.in);
|
||||||
|
|
||||||
|
choice = In.nextInt();
|
||||||
|
|
||||||
|
switch (choice) {
|
||||||
|
case 1: {
|
||||||
|
System.out.println("Enter the Key: ");
|
||||||
|
key = In.nextInt();
|
||||||
|
h.insertHash(key);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
System.out.println("Enter the Key delete: ");
|
||||||
|
key = In.nextInt();
|
||||||
|
h.deleteHash(key);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
System.out.println("Print table");
|
||||||
|
h.displayHashtable();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
Data Structures/HashMap/Hashing/Node.java
Normal file
9
Data Structures/HashMap/Hashing/Node.java
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
class Node {
|
||||||
|
int data;
|
||||||
|
Node next;
|
||||||
|
|
||||||
|
public Node(int data) {
|
||||||
|
this.data = data;
|
||||||
|
this.next = null;
|
||||||
|
}
|
||||||
|
}
|
@ -1,161 +0,0 @@
|
|||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
class Node {
|
|
||||||
int data;
|
|
||||||
Node next;
|
|
||||||
|
|
||||||
public Node(int data) {
|
|
||||||
this.data = data;
|
|
||||||
this.next = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class LinkedList {
|
|
||||||
|
|
||||||
private Node Head;
|
|
||||||
private int size;
|
|
||||||
|
|
||||||
public LinkedList() {
|
|
||||||
Head = null;
|
|
||||||
size = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void insert(int data) {
|
|
||||||
|
|
||||||
Node temp = Head;
|
|
||||||
Node newnode = new Node(data);
|
|
||||||
|
|
||||||
size++;
|
|
||||||
|
|
||||||
if(Head == null) {
|
|
||||||
Head = newnode;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
newnode.next = Head;
|
|
||||||
Head = newnode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void delete(int data) {
|
|
||||||
if(size == 0) {
|
|
||||||
System.out.println("UnderFlow!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
Node curr = Head;
|
|
||||||
if (curr.data == data) {
|
|
||||||
Head = curr.next;
|
|
||||||
size--;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
while(curr.next.next != null) {
|
|
||||||
if(curr.next.data == data){
|
|
||||||
curr.next = curr.next.next;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println("Key not Found");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void display() {
|
|
||||||
Node temp = Head;
|
|
||||||
while(temp != null) {
|
|
||||||
System.out.printf("%d ",temp.data);
|
|
||||||
temp = temp.next;
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
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);
|
|
||||||
//System.out.println(hash);
|
|
||||||
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);
|
|
||||||
buckets[i].display();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
|
|
||||||
int choice, key;
|
|
||||||
|
|
||||||
HashMap h = new HashMap(7);
|
|
||||||
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
System.out.println("Enter your Choice :");
|
|
||||||
System.out.println("1. Add Key");
|
|
||||||
System.out.println("2. Delete Key :");
|
|
||||||
System.out.println("3. Print Table");
|
|
||||||
System.out.println("4. Exit");
|
|
||||||
|
|
||||||
Scanner In = new Scanner(System.in);
|
|
||||||
|
|
||||||
choice = In.nextInt();
|
|
||||||
|
|
||||||
switch (choice) {
|
|
||||||
case 1:{
|
|
||||||
System.out.println("Enter the Key: ");
|
|
||||||
key = In.nextInt();
|
|
||||||
h.insertHash(key);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2: {
|
|
||||||
System.out.println("Enter the Key delete: ");
|
|
||||||
key = In.nextInt();
|
|
||||||
h.deleteHash(key);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3: {
|
|
||||||
System.out.println("Print table");
|
|
||||||
h.displayHashtable();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 4: {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user