Hashfunktion

Implementieren Sie eine Hashtabelle der Größe 67 für Hashing mit linearem Sondieren. Verwenden Sie für die
Tabelle die folgende Hashfunktion für einen String der Länge n > 1:
h(sn) = (((h(sn-1) << 8) + sn) mod k) mit k = 67, h(s0) = s0
Dabei sei sn der ASCII-Code1 des n-ten Zeichens eines Wortes. Das erste Zeichen eines Wortes ist mit s0 bezeichnet.
Mit << lassen sich bitweise Verschiebungen nach links ermöglichen. D.h. die Eingabe wird um die
angegebene Anzahl an Bits in Richtung des höchstwertigen Bits verschoben und mit Nullen aufgefüllt. (4 Punkte)
Beispiel für die bitweise Verschiebung: 10001101 << 4 = 11010000
Beispiel zur Anwendung der Hashfunktion anhand des Strings "abc":
h(’c’) = (h(’b’) << 8) + ’c’) mod 67 = (((((h(’a’) << 8) + ’b’) mod 67) << 8) + ’c’) mod 67
= (((((’a’ << 8) + ’b’) mod 67) << 8) + ’c’) mod 67
= ((((97 << 8) + 98) mod 67) << 8) + 99) mod 67
= 27
 

Khal Drogo

Bekanntes Mitglied
Ja, das ist deine Aufgabe, ich würde gerne wissen, was du nicht verstehst bzw. von uns willst :)

Mit freundlichen Grüßen
Xelsarion
 
Zuletzt bearbeitet:

Neumi5694

Top Contributor
ich verstehe leider die Frage in sich nicht und hätte gerne paar Tipps
Erstelle mal das, das du verstehst. Erstelle eine Klasse und fang damit an, die Hash-Funktion für den String zu schreiben, wie die funktioniert, steht oben schon. Ob du das nun iterativ machst oder rekursiv wie beschrieben, ist deine Sache, aber ich empfehle, es iterativ zu machen. Bei einem längeren String kriegst du sonst Probleme mit dem Speicher.

Dass du nicht weißt, wie man so eine Methode schreibt, glaub ich schlicht und einfach nicht. Die lassen euch nicht auf ene Hashtable los, ohne euch die Grundlagen beigebracht zu haben.
Mach mal das, wie weit du kommst und poste den Code.
 

KonradN

Super-Moderator
Mitarbeiter
Und wichtig ist auch das Verständnis, was eine Hashtable ist und was dieses "lineare sondieren" bedeutet.

Das kann man also alles nachlesen ... so also die Unterlagen aus Vorlesung / Unterricht nicht reichen, dann findet sich auch sehr viel im Internet dazu.
 

Ähnliche Java Themen

Neue Themen


Oben