\documentclass{bschlangaul-aufgabe} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 5}, Thematik = {Streuspeicherung}, Referenz = 66115-2020-H.T1-TA2-A5, RelativerPfad = Examen/66115/2020/09/Thema-1/Teilaufgabe-2/Aufgabe-5.tex, ZitatSchluessel = examen:66115:2020:09, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Streutabellen (Hashing)}, EinzelpruefungsNr = 66115, Jahr = 2020, Monat = 09, ThemaNr = 1, TeilaufgabeNr = 2, AufgabeNr = 5, } Gegeben seien die folgenden Schlüssel $k$ zusammen mit ihren Streuwerten $h(k)$: \index{Streutabellen (Hashing)} \footcite{examen:66115:2020:09} \begin{center} \begin{tabular}{|r||c|c|c|c|c|c|c|c|} \hline $k$ & B & Y & E & ! & A & U & D & ? \\\hline $h(k)$ & 5 & 4 & 0 & 4 & 4 & 0 & 7 & 2 \\\hline \end{tabular} \end{center} \begin{enumerate} %% % a) %% \item Fügen Sie die Schlüssel in der angegebenen Reihenfolge (von links nach rechts) in eine Streutabelle der Größe 8 ein und lösen Sie Kollisionen durch verkettete Listen auf. Stellen Sie die Streutabelle in folgender Art und Weise dar: \begin{bAntwort} \begin{center} \begin{tabular}{|c||l|} \hline Fach & Schlüssel k {\scriptsize(verkettete Liste, zuletzt eingetragener Schlüssel rechts)}\\ \hline 0 & E, U, \\ 1 & \\ 2 & ? \\ 3 & \\ 4 & Y, !, A \\ 5 & B, \\ 6 & \\ 7 & D\\ \hline \end{tabular} \end{center} \end{bAntwort} %% % b) %% \item Fügen Sie die gleichen Schlüssel in der gleichen Reihenfolge und mit der gleichen Streufunktion in eine neue Streutabelle der Größe $8$ ein. Lösen Sie Kollisionen diesmal aber durch lineares Sondieren mit Schrittweite $+1$ auf. Geben Sie für jeden Schlüssel jeweils an, welche Fächer Sie in welcher Reihenfolge sondiert haben und wo der Schlüssel schlussendlich gespeichert wird. \begin{bAntwort} \begin{center} \begin{tabular}{|c||l|} \hline Fach & Schlüssel $k$\\ \hline 0 & E \\ 1 & U \\ 2 & D \\ 3 & ? \\ 4 & Y\\ 5 & B \\ 6 & !\\ 7 & A \\ \hline \end{tabular} \end{center} \begin{center} \begin{tabular}{|c||l|l|} \hline Schlüssel & Sondierung & Speicherung\\ \hline B & & 5 \\ Y & & 4 \\ E & & 0 \\ ! & 4, 5 & 6 \\ A & 4, 5, 6 & 7 \\ U & 0 & 1 \\ D & 7, 0, 1 & 2 \\ ? & 2 & 3 \\ \hline \end{tabular} \end{center} \end{bAntwort} %% % c %% \item Bei der doppelten Streuadressierung verwendet man eine Funktionsschar $h_i$, die sich aus einer primären Streufunktion $h_0$ und einer Folge von sekundären Streufunktionen $h_1, h_2,\dots$ zusammensetzt. Die folgenden Werte der Streufunktionen sind gegeben: \begin{center} \begin{tabular}{|r||c|c|c|c|c|c|c|c|} \hline $k$ & B & Y & E & ! & A & U & D & ? \\\hline $h_0(k)$ & 5 & 4 & 0 & 4 & 4 & 0 & 7 & 2 \\\hline $h_1(k)$ & 6 & 3 & 3 & 3 & 1 & 2 & 6 & 0 \\\hline $h_2(k)$ & 7 & 2 & 6 & 2 & 6 & 4 & 5 & 6 \\\hline $h_3(k)$ & 0 & 1 & 1 & 1 & 3 & 6 & 4 & 4 \\\hline \end{tabular} \end{center} Fügen Sie die Schlüssel in der angegebenen Reihenfolge (von links nach rechts) in eine Streutabelle der Größe $8$ ein und geben Sie für jeden Schlüssel jeweils an, welche Streufunktion $h_i$ zur letztendlichen Einsortierung verwendet wurde. \begin{bAntwort} \begin{center} \begin{tabular}{|c||l|} \hline Fach & Schlüssel $k$\\ \hline 0 & E \\ 1 & A \\ 2 & U \\ 3 & ! \\ 4 & Y \\ 5 & B \\ 6 & ? \\ 7 & D \\ \hline \end{tabular} \end{center} \begin{center} \begin{tabular}{|c||l|l|} \hline Schlüssel & Streufunktion\\ \hline B & $h_0(k)$ \\ Y & $h_0(k)$ \\ E & $h_0(k)$ \\ ! & $h_1(k)$ \\ A & $h_1(k)$ \\ U & $h_1(k)$ \\ D & $h_0(k)$ \\ ? & $h_2(k)$ \\ \hline \end{tabular} \end{center} \end{bAntwort} \end{enumerate} \end{document}