Datenstrukturen und Abstrakte Datentypen Flashcards
Was ist eine Datenstruktur?
Eine Datenstruktur ist eine Art Daten zu organisieren, um sie effizient zu nutzen.
•Essentiell um schnelle und performante Algorithmen zu schreiben.
Was ist ein Abstrakter Datentyp?
Eine Abstraktion einer Datenstruktur, die ein Interface bereitstellt, an die sich die Datenstruktur halten muss.
Es wird nicht vorgegeben, wie oder in welcher Sprache etwas implementiert werden muss.
Ordne den Abstrakten Datentypen mindestens eine Datenstruktur zu:
•List
•Queue
•Map
List: Dynamic Array, Linked List
Queue: Link List, Array oder Stack based Queue
Map: Tree Map, Hash Map / Table
Was ist ein statisches Array?
Ein statisches Array ist ein Kontainer mit fixer Größe n und indizierbaren Elementen von [0, n-1]
Wofür werden Arrays benutzt?
- Ablegen und Aufrufen von sequenziellen Daten
- Vorübergehendes Speichern von Objekten
- Als Buffer füt IO Operationen
- Lookup tables und inversive lookup tables
- Um mehrere Werte einer Funktion zu returnen
Worin unterscheiden sich Dynamic Arrays zu statischen?
Sie sind in iherer Größe flexibel, das heißt sie können wachsen und schrumpfen.
Wie werden Dynamische Arrays in manchen Sprachen noch bezeichnet?
Array List oder Vector
Wie funktioniert ein dynamisches Array
1) Array mit intialer Größe wird erstellt
2) Elemente werden hinzugefügt
3) Sobald Kapazität überschritten wird, wird ein neues Array erstellt (z.B. doppelt so groß) als das ursprüngliche. Die Werte werden dann hineinkopiert.
Welche Bestandteile hat eine Linked List
- Head: der erste Knoten in einer LL
- Tail: der letzte Knoten in einer LL
- Pointer: Referenz auf einen anderen Node
- Node: ein Objekt, das Daten und je nach Typ der Liste einen oder mehrere Pointer beinhaltet
Worin unterscheidet sich eine doppelt verkettete List zu einer einfach verketteten Liste?
Die doppelt verkettete Liste besitzt pro Node 2 Pointer und kann somit auch Rückwärts traversiert werden.
Was ist ein Traverser Pointer?
Ein Traverser Pointer wird erzeugt um den Pointer eines Elemements vorrübergehend zu speichern. So können dann Elemente der Liste hinzugefügt oder entfernt werden.
Was ist ein Stack?
Der Stack ist eine linerare Datenstrucktur mit einem Ende. Es wird ein Stapel aus der realen Welt damit modelliert.
Was sind die zwei Hauptoperationen eines Stacks?
Push: Das hinzufügen eines Objekts auf den Stapel
Pop: Das Entfernen eines Objekts vom Stapel
Die Operationen verfahren nach dem LIFO Prinzip (last in, first out)
Was ist eine Queue?
Eine Queue ist eine lineare Datenstruktur, die eine Warteschlange der realen Welt darstellt.
Was sind die Hauptoperationen einer Queue?
Enqueue: Ein Element wird hinten an die Reihe gehängt
Dequeue: Ein Element wird vorne von der Reihe entfernt
Die Operationen basieren auf den FIFO-Prinzip (first in, first out)