242 lines
5.0 KiB
Java
242 lines
5.0 KiB
Java
|
/*This is a Java Program to implement Direct Addressing Tables. Direct Addressing Tables are used when each element has a key drawn from a universe U = {0, 1, . . . ,m − 1} where m isn’t too large and each key is unique. Here Direct Addressing Tables is implemented using an array of strings where array index is the key.*/
|
|||
|
|
|||
|
/*
|
|||
|
* Java Program to Implement Direct Addressing Tables
|
|||
|
*/
|
|||
|
|
|||
|
import java.util.Scanner;
|
|||
|
|
|||
|
class DirectAddressingTable
|
|||
|
{
|
|||
|
private String[] arr ;
|
|||
|
private final int DEFAULT_CAPACITY = 10001;
|
|||
|
|
|||
|
/* Constructor */
|
|||
|
public DirectAddressingTable()
|
|||
|
{
|
|||
|
arr = new String[DEFAULT_CAPACITY];
|
|||
|
}
|
|||
|
/* Constructor */
|
|||
|
public DirectAddressingTable(int capacity)
|
|||
|
{
|
|||
|
arr = new String[capacity + 1];
|
|||
|
}
|
|||
|
/* function to insert */
|
|||
|
public void insert(int k, String d)
|
|||
|
{
|
|||
|
arr[k] = d;
|
|||
|
}
|
|||
|
/* function to delete */
|
|||
|
public void delete(int k)
|
|||
|
{
|
|||
|
arr[k] = null;
|
|||
|
}
|
|||
|
/* function to get value */
|
|||
|
public String get(int k)
|
|||
|
{
|
|||
|
return arr[k];
|
|||
|
}
|
|||
|
/* function to clear */
|
|||
|
public void clear()
|
|||
|
{
|
|||
|
int l = arr.length;
|
|||
|
arr = new String[l];
|
|||
|
}
|
|||
|
/* function to print */
|
|||
|
public void printTable()
|
|||
|
{
|
|||
|
System.out.println("\nDirect Addressing Table : ");
|
|||
|
int l = arr.length;
|
|||
|
for (int i = 0; i < l; i++)
|
|||
|
if (arr[i] != null)
|
|||
|
System.out.println(i +" "+ arr[i]);
|
|||
|
System.out.println();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public class DirectAddressingTableTest
|
|||
|
{
|
|||
|
public static void main(String[] args)
|
|||
|
{
|
|||
|
Scanner scan = new Scanner(System.in);
|
|||
|
System.out.println("Direct Addressing Table Test\n\n");
|
|||
|
/* Make object of DirectAddressingTable */
|
|||
|
DirectAddressingTable dat = new DirectAddressingTable();
|
|||
|
char ch;
|
|||
|
/* Perform DirectAddressingTable operations */
|
|||
|
do
|
|||
|
{
|
|||
|
System.out.println("\nDirect Addressing Table Operations\n");
|
|||
|
System.out.println("1. insert ");
|
|||
|
System.out.println("2. remove");
|
|||
|
System.out.println("3. get");
|
|||
|
System.out.println("4. clear");
|
|||
|
int choice = scan.nextInt();
|
|||
|
switch (choice)
|
|||
|
{
|
|||
|
case 1 :
|
|||
|
System.out.println("Enter int key and string value");
|
|||
|
dat.insert( scan.nextInt(), scan.next() );
|
|||
|
break;
|
|||
|
case 2 :
|
|||
|
System.out.println("Enter int key");
|
|||
|
dat.delete( scan.nextInt() );
|
|||
|
break;
|
|||
|
case 3 :
|
|||
|
System.out.println("Enter int key");
|
|||
|
System.out.println("Value = "+ dat.get( scan.nextInt() ));
|
|||
|
break;
|
|||
|
case 4 :
|
|||
|
dat.clear();
|
|||
|
System.out.println("Direct Addressing Table Cleared\n");
|
|||
|
break;
|
|||
|
default :
|
|||
|
System.out.println("Wrong Entry \n ");
|
|||
|
break;
|
|||
|
}
|
|||
|
/* Display hash table */
|
|||
|
dat.printTable();
|
|||
|
System.out.println("\nDo you want to continue (Type y or n) \n");
|
|||
|
ch = scan.next().charAt(0);
|
|||
|
}
|
|||
|
while (ch == 'Y'|| ch == 'y');
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
Direct Addressing Table Operations
|
|||
|
|
|||
|
1. insert
|
|||
|
2. remove
|
|||
|
3. get
|
|||
|
4. clear
|
|||
|
1
|
|||
|
Enter int key and string value
|
|||
|
6 mango
|
|||
|
|
|||
|
Direct Addressing Table :
|
|||
|
6 mango
|
|||
|
|
|||
|
|
|||
|
Do you want to continue (Type y or n)
|
|||
|
|
|||
|
y
|
|||
|
|
|||
|
Direct Addressing Table Operations
|
|||
|
|
|||
|
1. insert
|
|||
|
2. remove
|
|||
|
3. get
|
|||
|
4. clear
|
|||
|
1
|
|||
|
Enter int key and string value
|
|||
|
24 pineapple
|
|||
|
|
|||
|
Direct Addressing Table :
|
|||
|
6 mango
|
|||
|
24 pineapple
|
|||
|
|
|||
|
|
|||
|
Do you want to continue (Type y or n)
|
|||
|
|
|||
|
y
|
|||
|
|
|||
|
Direct Addressing Table Operations
|
|||
|
|
|||
|
1. insert
|
|||
|
2. remove
|
|||
|
3. get
|
|||
|
4. clear
|
|||
|
1
|
|||
|
Enter int key and string value
|
|||
|
17 orange
|
|||
|
|
|||
|
Direct Addressing Table :
|
|||
|
6 mango
|
|||
|
17 orange
|
|||
|
24 pineapple
|
|||
|
|
|||
|
|
|||
|
Do you want to continue (Type y or n)
|
|||
|
|
|||
|
y
|
|||
|
|
|||
|
Direct Addressing Table Operations
|
|||
|
|
|||
|
1. insert
|
|||
|
2. remove
|
|||
|
3. get
|
|||
|
4. clear
|
|||
|
1
|
|||
|
Enter int key and string value
|
|||
|
1 apple
|
|||
|
|
|||
|
Direct Addressing Table :
|
|||
|
1 apple
|
|||
|
6 mango
|
|||
|
17 orange
|
|||
|
24 pineapple
|
|||
|
|
|||
|
|
|||
|
Do you want to continue (Type y or n)
|
|||
|
|
|||
|
y
|
|||
|
|
|||
|
Direct Addressing Table Operations
|
|||
|
|
|||
|
1. insert
|
|||
|
2. remove
|
|||
|
3. get
|
|||
|
4. clear
|
|||
|
3
|
|||
|
Enter int key
|
|||
|
24
|
|||
|
Value = pineapple
|
|||
|
|
|||
|
Direct Addressing Table :
|
|||
|
1 apple
|
|||
|
6 mango
|
|||
|
17 orange
|
|||
|
24 pineapple
|
|||
|
|
|||
|
|
|||
|
Do you want to continue (Type y or n)
|
|||
|
|
|||
|
y
|
|||
|
|
|||
|
Direct Addressing Table Operations
|
|||
|
|
|||
|
1. insert
|
|||
|
2. remove
|
|||
|
3. get
|
|||
|
4. clear
|
|||
|
2
|
|||
|
Enter int key
|
|||
|
17
|
|||
|
|
|||
|
Direct Addressing Table :
|
|||
|
1 apple
|
|||
|
6 mango
|
|||
|
24 pineapple
|
|||
|
|
|||
|
|
|||
|
Do you want to continue (Type y or n)
|
|||
|
|
|||
|
y
|
|||
|
|
|||
|
Direct Addressing Table Operations
|
|||
|
|
|||
|
1. insert
|
|||
|
2. remove
|
|||
|
3. get
|
|||
|
4. clear
|
|||
|
4
|
|||
|
Direct Addressing Table Cleared
|
|||
|
|
|||
|
|
|||
|
Direct Addressing Table :
|
|||
|
|
|||
|
|
|||
|
Do you want to continue (Type y or n)
|
|||
|
|
|||
|
n
|