Linear probing

PHOTO EMBED

Wed May 29 2024 19:18:55 GMT+0000 (Coordinated Universal Time)

Saved by @exam123

import java.util.*;

class LinearProb {
    int csize, maxsize;
    String keys[];
    String vals[];

    LinearProb(int capacity) {
        csize = 0;
        maxsize = capacity;
        keys = new String[maxsize];
        vals = new String[maxsize];
    }

    public int hash(String key) {
        return Math.abs(key.hashCode()) % maxsize; // Corrected hash function
    }

    public void insert(String key, String val) {
        int index = hash(key);
        while (keys[index] != null && !keys[index].equals(key)) {
            index = (index + 1) % maxsize; // Linear probing
        }
        keys[index] = key;
        vals[index] = val;
        csize++;
    }

    public void print() {
        System.out.println("Hash Table");
        for (int i = 0; i < maxsize; i++) {
            if (keys[i] != null) {
                System.out.println(keys[i] + " " + vals[i]);
            }
        }
    }
}

public class Main {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
        System.out.println("Enter size");
        int capacity = s.nextInt();
        LinearProb lp = new LinearProb(capacity);
        for (int i = 0; i < capacity; i++) {
            System.out.println("Enter key and val");
            lp.insert(s.next(), s.next());
        }
        lp.print();
    }
}


content_copyCOPY