Klausurfragen Flashcards
Welche Datenstruktur benutzt ihre CPU ausschliesslich
Stack
Unterschied Dynamische, Statische Menge
Statische Menge:
Definition: Unveränderliche Sammlung von Elementen.
Eigenschaften: Feste Größe, keine Änderung der Elemente möglich.
Beispiele: Feste Arrays.
Dynamische Menge:
Definition: Veränderbare Sammlung von Elementen.
Eigenschaften: Variable Größe, Elemente können hinzugefügt oder entfernt werden.
Beispiele: Listen (z.B. ArrayList in Java, List in Python).
Warum Stack
- Computer verfolgt LIFO-Strategie beim Berechnen
- Schnelligkeit
Wie können so viele Threads parallel laufen
Scheduler, Jeder Thread hat
seinen eigenen Stack
Sie möchten durch Insert-Sort ein aufsteigend sortiertes Feld aufsteigend sortieren. Geht das Schneller
Ja
Zwei Kriterien zur Bestimmung von Sortieralgorithmen
- Speicherplatz
- Laufzeit
Weiteres Kriterium zur Bestimmung von Sortieralgorithmen
Stabilität
Welcher Sortieralgorithmus sortiert nicht selber
RadixSort: Sortierung nach Stellen
Die Breitensuche Erreicht auf jeden Fall alle Knoten ?
Nein
Wo steht das im Code ? : Codezeile 0 = Expliziter Startknoten (s)
Breitensuche schneller als Tiefensuche
Shortest Path: BFS
Worst Time: O(V+E)
Ergebnis näher an der Wurzel: BFS schneller
Ergebnis tiefer im Graph: DFS schneller
Was sind die Eigeenschaften die einen systematische
Graphendurchsuchungsalgorithmus vollständig machen
- Alle Knoten Werden untersucht
- Nicht Lost in Zyklus
- Nicht Lost in Tiefenpfaden
Wann werden gpopte Elemente gelöscht
Wenn neue Elemente über Push() eingefügt werden (überschrieben werden)
Wie viele Elemente können auf einem Stack oder in einer Queue gespeichert werden ?
-> Stack = N-Elemente
-> Queue = N-1 Elemente
Warum benutzen wir Hashfunktionen bei Rabin Karp
Damit die Zahlen nicht so groß werden & Speicherplatz gespart wird. Laufzeitverlust durch Divisionsmethode, Doppelungen ohne Hash möglich
Wie viele Aktzeptierte Zustände hat ein NEA beim String matching
genau einen
Wie ist die Basis des Hornerschemas bei ASCII
128 Bit
Welcher String-Matching Algorithmus hat die längste Vorbereitungszeit
NEA/DEA Endlicher Automat
Was sind abstrakte Datenstrukturen
Abstrakte Datenstrukturen (ADS) sind konzeptionelle Modelle zur Organisation und Verwaltung von Daten, unabhängig von ihrer konkreten Implementierung. Sie definieren Operationen und Regeln für den Umgang mit den Daten. Beispiele für ADS sind:
Listen (Lists): Geordnete Sammlung von Elementen, z.B. Arrays, verkettete Listen.
Stapel (Stacks): LIFO-Prinzip (Last In, First Out), z.B. Push, Pop.
Warteschlangen (Queues): FIFO-Prinzip (First In, First Out), z.B. Enqueue, Dequeue.
Bäume (Trees): Hierarchische Struktur aus Knoten, z.B. Binärbaum.
Graphen (Graphs): Knoten und Kanten, die Beziehungen darstellen, z.B. gerichtet oder ungerichtet.
Hashtabellen (Hash Tables): Schlüssel-Wert-Paare mit schneller Zugriffsmöglichkeit.
Mengen (Sets): Ungeordnete Sammlung eindeutiger Elemente.
Ein ADT bestehen aus Objekten und darauf definieren Funktionen.
Realisierung ist vor dem Nutzer (Client) verborgen
Beispiele
Stapel (Stack)
Warteschlangen (Queue)
Beispiele Python
set (Repräsentation von Mengen)
list (Repräsentation von Listen)
class (zur Erstellung neuer Klassen/ADTs)