Haszowanie z adresowaniem otwartym

Zadanie z6.1. Niech m=13. Zdefiniujmy następujące funkcje haszujące:
h1(k) = k mod m
h2(k) = 1+ (k mod (m-2)).

(A) Prześledź działanie haszowania z adresowaniem otwartym, wariant z adresowaniem liniowym, z funkcją haszującą h(k,i)=(h1(k)+i) mod m w sytuacji, gdy do początkowo pustej (m-elementowej) tablicy T wstawiamy liczby 6, 19, 28, 41, 54, a następnie usuwamy 41 i szukamy potem 54 oraz 32. "Prześledź działanie" oznacza, że dla każdej wstawianej liczby należy wyliczyć pozycje, na jakich były próby wstawienia i pozycję na której ostatecznie było wstawienie.

(B) Prześledź działanie haszowania z adresowaniem otwartym, wariant z adresowaniem kwadratowym, z funkcją haszującą h(k,i)=(h1(k)+i2) mod m w sytuacji, gdy do początkowo pustej (m-elementowej) tablicy T wstawiamy liczby 6, 19, 28, 41, 54, 67, a następnie usuwamy 54 i szukamy potem 67.

(C) Prześledź działanie haszowania z adresowaniem otwartym, wariant z haszowaniem dwukrotnym, z funkcją haszującą h(k,i)=(h1(k)+i*h2(k)) mod m w sytuacji, gdy do (m-elementowej) tablicy T zawierającej elementy 50 (pozycja 11), 69 (pozycja 4), 72 (pozycja 7), 79 (pozycja 1), oraz 98 (pozycja 5), wstawiamy liczbę 14, a następnie usuwamy 98 i szukamy potem 14.

Zadanie z6.2. (4 pkt.) Zaprogramować wybraną JEDNĄ operację (W, S lub U) dla TRZECH różnych technik rozwiązywania kolizji na tablicy z haszowaniem z adresowaniem otwartym oraz przeprowadzić testy i pomiary:

  1. Operacje przetestować osobno na małej tablicy, z wydrukiem kontrolnym,
  2. testy/pomiary przeprowadzić na tablicy większego rozmiaru, np. rzędu kilku tysięcy.

W tablicy haszowań mają być obiekty zawierające dwa pola:

ilosc – typu int
nazwisko – ciąg znaków

Kluczami mają być nazwiska (schematy zamiany na liczbę, do haszowania, jak w zadaniu z5). W pliku nazwiskaASCII znajduje się wykaz zapisów postaci: [liczba typu int] [nazwisko], które można wykorzystać.

Wykaz liczb pierwszych (przydatnych przy doborze rozmiaru tablicy): pierwsze.txt.

Warianty operacji i pomiarów

Warianty techniki rozwiązywania kolizji Możliwe kombinacje wariantów: [W+OL], [W+OK], [W+OD], [S+OL], [S+OK], [S+OD], [U+OL], [U+OK], [U+OD].