/**
 * AlgoDat SoSe2000, Aufgabe 64 b
 * Hashtabelle fuer int
 *
 * @author Christian Semrau
 * <a href="mailto:gsemrau@cs.uni-magdeburg.de">gsemrau@cs.uni-magdeburg.de</a>
 */

import java.util.LinkedList;
class Hashtabelle{
    LinkedList[] zeiger;
    // ich verwende LinkedList fuer die Verwaltung der Ueberlaeufer,
    // deshalb muss ich die Zahlen in Integer-Objekte einpacken
    // sicher waere es in diesem Fall eleganter gewesen, einen eigenen
    // Listentyp zu verwenden, der direkt Zahlen speichert

    public Hashtabelle(int p){
        zeiger = new LinkedList[p];
        for (int i=0; i<p; i++)
            zeiger[i] = new LinkedList();
    }

    public void insert(int zahl){
        int hash = zahl % zeiger.length;
        zeiger[hash].addFirst(new Integer(zahl));
    }

    public int get(int zahl){
        int hash = zahl % zeiger.length;
        int inList = zeiger[hash].indexOf(new Integer(zahl));
        if (inList>=0){
            Integer i = (Integer)zeiger[hash].get(inList);
            return i.intValue();
        }else
            return -1; // was soll ich liefern, wenn die Zahl
            // nicht drin ist ?!
    }

    public void remove(int zahl){
        int hash = zahl % zeiger.length;
        zeiger[hash].remove(new Integer(zahl));
    }

}
