• Keine Ergebnisse gefunden

Algorithmen und Datenstrukturen (WS 2019) Aufgabenblatt 12

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Datenstrukturen (WS 2019) Aufgabenblatt 12"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

TU Kaiserslautern – FB Informatik 04.02.2020

Dr. Patrick Michel

Algorithmen und Datenstrukturen (WS 2019) Aufgabenblatt 12

zu bearbeiten bis: 10.02.20-12.02.20

Aufgabe 12.1 (Balancierte B¨aume - Theorie)

Wir betrachten die balancierten2-3-4-B¨aumeaus der Vorlesung.

• F¨ugen Sie nacheinander die Schl¨ussel 10,9,8, . . . ,2,1 in einen (anfangs leeren) 2-3-4- Baumein. Zeichnen Sie mindestens einen neuen Baum f¨ur alle Zwischenschritte, bei denen Knoten dazu kommen!

• In einem2-3-4-Baumsind alle Bl¨atter auf derselben Ebene, aber auch alle inneren Knoten sind jeweils vollst¨andig, das heißt wenn sie 2, 3 oder 4 Werte beinhalten haben sie auch genau 3, 4 oder 5 Nachfolger. ¨Uberpr¨ufen Sie, ob das auf Ihren finalen Baum zutrifft und korrigieren Sie ggf. Ihre L¨osung.

• Das L¨oschen von Knoten haben wir in der Vorlesung nicht behandelt, unter anderem weil es viele Sonderf¨alle gibt und man aufpassen muss die Eigenschaften zu erhalten, die einen2- 3-4-Baumbalanciert machen. Gehen Sie durch Ihren finalen Baum und leiten Sie an Hand der Knoten 1 bis 6 einfache F¨alle f¨ur L¨oschoperationen ab. Versuchen Sie die F¨alle als allgemeine Regeln zu formulieren.

• Wie k¨onnte man den Wert 7 l¨oschen? Denken Sie an das Vorgehen beim L¨oschen aus normalen Bin¨arb¨aumen!

• Wieso k¨onnen 8, 9 und 10 mit keinem dieser Ans¨atze gel¨oscht werden? Haben Sie eine Idee was mit dem Baum getan werden kann, um das Problem zu l¨osen?

Aufgabe 12.2 (HashMap - Praxis)

Implementieren Sie eineHashMap, welche ein Array (oder ArrayList) als Hash-Tablever- wendet um Elemente zu speichern. Ihre Klasse soll dabei den abstrakten DatentypMap<K, V>

implementieren (so wie beiTreeMap). Verwenden Sie zur Bestimmung der Arrayposition f¨ur ein Element die hashCode Funktion auf dem Schl¨ussel (Modulo der Arraygr¨oße, achten Sie aber auf negative Hashcodes!). Zu Kollisionsbehandlung verwenden Sie die Strategie Verket- tung, mit Hilfe vonList<Map.Entry<K, V>>, also Listen von Key-Value Paaren.

Denken Sie daran IhreHashMapzu vergr¨oßern, bevor sie ¨uberbelegt wird, damit die Anzahl der Kollisionen nicht zu viel werden!

• Wie w¨urden nun die passenden Implementierungen von HashSetundHashMultiset aussehen?

Materialien: https://softech.cs.uni-kl.de/homepage/de/teaching/WS19/algodat

Algorithmen und Datenstrukturen (WS 2019) (12) 1/1

Referenzen

ÄHNLICHE DOKUMENTE

Diese soll ein Boolesches Array b der L¨ange N + 1 zur¨uckliefern, das f¨ur jede Zahl k = 0, ..., N anzeigt ob es sich um eine Primzahl handelt (b[k] == true) oder nicht (b[k]

• Insertionsort (Skizzieren Sie das Feld nach jedem Durchlauf der ¨außeren Schleife).. • Selectionsort (Skizzieren Sie das Feld nach jedem Durchlauf der

Um die beste L¨osung f¨ur einen Bereich zu finden, vergleichen Sie drei L¨osungen: (1) die beste L¨osung, die rekur- siv in der linken H¨alfte gefunden wurde, (2) die beste L¨osung,

In der Vorlesung haben Sie eine alternative Implementierung des List Interface gesehen, mit Hilfe von einzelt verketteten Listen ( SingleLinkedList ).. • Annotieren Sie an jede

• Erg¨anzen Sie nun die iterator() Methode f¨ur die Klasse DoubleLinkedList und implementieren sie die gleichen drei Methoden im passenden Iterator?. • Welche Komplexit¨at haben

• Die Methode createRandomPlane(int size, String seed) konstruiert eine zuf¨allige Instanz mit size St¨adten, bei der jede Stadt zuf¨allige Koordinaten auf einer virtuellen

Quelle: Formatvorlage (2008) Flussdiagramme und geometrische Grafiken erstellt man am besten in Powerpoint und.. importiert sie dann als ppt-Objekt oder

©Heike Putze – diplomierte Legasthenietrainerin®... Rechne und male die