Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnummer Kennzahl: Frühjahr Kennwort: _______ 66115 2010 Arbeitsplatz-Nr.: Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen — Prüfungsaufgaben — Fach: Informatik Einzelprüfung: Algorithmen und Datenstrukturen Anzahl der gestellten Themen (Aufgaben): 2 Anzahl der Druckseiten dieser Vorlage: 9 Bitte wenden! Frühjahr 2010 Einzelprüfungsnummer: 66115 Seite: 2 Thema Nr. 1 (Aufgabengruppe) Es sind alle Aufgaben dieser Aufgabengruppe zu bearbeiten! Aufgabe 1: a) Konstruieren Sie einen deterministischen endlichen Automaten für die durch den regulären Ausdruck a(ba)* + 5 + bb(ab)* definierte Sprache über dem Alphabet © = {a,b}. Minimieren Sie den Automaten mit dem Minimierungsalgorithmus oder weisen Sie von Ihrem Automaten nach, dass er bereits minimal ist. b) Die Sprache L = {a"b” | n > 1} über dem Alphabet 3 = {a,b} ist bekanntlich kontextfrei. Ordnen Sie ihr Komplement D*\ Z bestmöglich in die Chomskyhierarchie ein (mit detaillierter Begründung). Sie können sich dazu überlegen, welche Möglichkeiten es für ein Wort w gibt, die Mitgliedschaft in Z zu verfehlen. c) Wie man weiß, sind die kontextfreien Sprachen unter Schnitt mit regulären Sprachen abgeschlossen. Es ist auch wohlbekannt, dass die Sprache {a"b"c" | n > 0} nicht kontextfrei ist. Benutzen Sie diese Tatsachen (ohne Beweis!), um nachzuweisen, dass die Sprache L= {w € {a,b,c}* | Jwla = |wly = |w|-} nicht kontextfrei ist. Erinnerung: |w]. bezeichnet für x € {a,b,c} die Anzahl der Symbole x in w. Aufgabe 2: Die Ackermannfunktion genügt bekanntlich den Gleichungen a(0,y) = y+1 und a(x +1,0) = a(x, 1) und a(x +1,y+1) = a(x, a(x+1,y)) und wächst in beiden Argumenten streng monoton. Eine Funktion f: N — N heiße Ackermann-beschränkt, wenn ein k € N existiert, sodass f(y) < a(k, y) für alle y € N. Zeigen Sie: a) a(l,y) =y+2 und a(2,y) = 2y+3. b) Sind f,g beide Ackermann-beschrankt, so auch f +g. Sie dürfen ohne Beweis verwenden: Für 2 >2gilt: 2a(z,y) pivot) k--; if (i < k) swap (a, i, k); } // Ergaenzung 2 Fortsetzung nächste Seite! Frühjahr 2010 Einzelprüfungsnummer: 66115 Aufgabe 7 Gegeben ist folgender Ausschnitt der Implementierung einer Datenstruktur X: public class Evi = - v2 int - { null; null; N we } public class X { - ee; public boolean ml() { return e == null; } public int m2() { if (mi()) { return 0; } else { return e.w; } } public int m3{) { int i = 0; Eel = @ while (el != null) { el = el.v2; itt; } return i; } public void m4(int j) { (if !ml()) { Ee2= e2.v2 = e2.w = - = e2; } else { new E(); ©; j? new E(}; - = e.w = J; Seite: 8 a) Erläutern Sie, um welche Datenstruktur es sich hier handelt und welche Funktionalität die Methoden m1(), m20, m3() und m4(int j) besitzen. b) Beschreiben Sie in Stichworten unter Verwendung von veranschaulichenden Skizzen, wie beim Löschen eines ersten Vorkommens eines Elements mit einem bestimmten Wert wl aus dieser Datenstruktur prinzipiell vorgegangen werden muss. Implementieren Sie eine Methode, welche die in Teilaufgabe b) beschriebene Funktionalität besitzt. Verwenden Sie dabei eine gängige objektorientierte Programmiersprache oder einen entsprechenden Pseudocode und kommentieren Sie Ihre Lösung. Fortsetzung nächste Seite! Frühjahr 2010 Einzelprüfungsnummer: 66115 Seite: 9 Aufgabe 8 a) Erläutern Sie in Stichpunkten die Vor- und Nachteile der Datenstruktur AVL-Baum (jeweils mit Begründung). b) Geben Sie für den folgenden AVL-Baum für alle Knoten jeweils die Balancierung an. c) Erläutern Sie, ob es sich bei dem Baum aus Teilaufgabe b) immer noch um einen AVLBaum handelt, wenn der Knoten mit dem Wert 62 entfernt wird. Skizzieren Sie gegebenenfalls erforderliche Maßnahmen, um den nach der Löschung des oben genannten Knotens entstandenen Baum wieder in einen AVL-Baum zu überführen. d) Geben Sie die Folge der Knoten an, wenn der in Aufgabe b) gegebene Baum in preorder-Reihenfolge traversiert wird.