Übungen zu Algorithmen und Datenstrukturen Aufgaben zur 3. Übung SS 2007 Besprechung 29.03.07 jsl Aufgabe 1 - Stack und Queue (2/2P) a) Beschreiben Sie in kurzen Worten den Unterschied zwischen einem Stack (Stapel, Keller, Pushdown-Liste) und einer Queue (Schlange, Warteschlange). Erläutern Sie in diesem Zusammenhang auch die Begriffe LIFO und FIFO. Recherchieren Sie diese Begriffe in der Literatur oder im Internet. b) Schlagen Sie eine Implementierung des ADT (Abstrakter Datentyp) Stack vor. „Implementieren“ Sie diesen ADT in Pseudocode. Aufgabe 2 – Implementierung einer FIFO-Warteschlange (2/4P) Implementieren Sie eine FIFO-Warteschlange als Array mit natürlichen Zahlen mit den Grundfunktionen Einfügen und Löschen (enqueue und dequeue), isEmpty und ‚numberOfElements’ in a) Pseudocode und b) in der Programmiersprache C. Aufgabe 3 – Implementierung ADT Menge (4/2P) a) Implementieren Sie den ADT Menge mit dem Zahlen- Grundbereich {0,..,k}, wobei k über Tastatur eingelesen werden soll, als Bool-Array, mit den Grundfunktionen Einfügen und Löschen von Elementen, Vereinigung, Schnitt und ‚Test auf enthalten sein’, sowie natürlich der Möglichkeit des Einlesens einer zweiten Menge. b) Entwickeln Sie eine Benutzerschnittstelle (Menü) zum Testen mit wahlweiser Auswahl der Grundfunktionen und einem Menübefehl zum Beenden des Programms. Aufgabe 4 – Speicherbedarf record (1/1/1P) a) Schätzen Sie den Speicherbedarf des nachfolgenden Records. Gehen Sie davon aus, dass ein Integer-Wert 4 und ein Character 1 Byte benötigen. b) Geben Sie Speicheradressen von r.Int6 und r.Name2[7] im Record r vom Typ example, der im Speicher an Adresse x abgelegt ist, an. c) Wie ist die Schreibweise dieses Records in der Programmiersprache C? record example begin Int1 : integer; Int2 : integer; Ar1 : array [1..20] of integer; Ar2 : array [1..20] of integer; Ar3 : array [1..20] of integer; Int3 : integer; Int4 : integer; Int5 : integer; Int6: integer; Name1: array [1..12] of character; Name2: array [1..12] of character; end Seite 1 von 2