Lesson_2 Datenstrukturen Flashcards

1
Q

Was ist ein Datentyp?

A

Ein Datentyp beschreibt den Wertebereich, den Variablen annehmen können, und die darauf anwendbaren Operationen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind primitive Datentypen und wie unterscheiden sie sich?

A
  • bool: 1 Byte, Wertebereich: 0 oder 1
  • char: 1 Byte, Wertebereich: -128 bis 127
  • int: 8 Byte, Wertebereich: ca. -9x10^18 bis 9x10^18
  • unsigned int: 8 Byte, Wertebereich: 0 bis ca. 18x10^18
  • float: 4 Byte, Wertebereich: ca. -3,4x10^38 bis 3,4x10^38
  • double: 8 Byte, Wertebereich: ca. -1,7x10^308 bis 1,7x10^308
  • long double: 10 Byte
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist eine Datenstruktur?

A

Eine Datenstruktur fasst gleiche oder unterschiedliche Datentypen nach bestimmten Konstruktionsprinzipien zusammen. Beispiele sind Arrays, Listen, Bäume.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Nenne Beispiele für häufig verwendete Datenstrukturen.

A
  • Arrays,
  • verkettete Listen,
  • Bäume,
  • Graphen,
  • Stacks,
  • Queues.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist ein Array?

A

Ein Array ist eine Sammlung von Elementen desselben Datentyps, die in zusammenhängenden Speicherplätzen mit fixer größe abgelegt werden. Der Zugriff auf ein Element erfolgt über den Index.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind die Vor- und Nachteile von Arrays?

A

Antwort:
- Vorteile: Schneller Zugriff auf Elemente mittels Index, effizienter Speicherverbrauch
- Nachteile: Feste Größe, umständlich beim Einfügen und Löschen von Elementen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Zeitkomplexität hat das Einfügen in ein Array?

A

Das Einfügen eines Elements in ein Array hat im Worst Case eine Zeitkomplexität von O(n), da im schlimmsten Fall alle Elemente verschoben werden müssen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist die binäre Suche?

A

Die **binäre Suche **ist ein Algorithmus zum Suchen eines Elements in einem sortierten Array. Sie halbiert das Suchfeld in jedem Schritt und hat eine Zeitkomplexität von O(log n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie funktioniert die binäre Suche? (Schritte detailliert)

A

Antwort:
1. Starte in der Mitte des Arrays.
2. Vergleiche das mittlere Element mit dem gesuchten Wert.
3. Falls der Wert kleiner ist, suche im linken Teil weiter, andernfalls im rechten.
4. Wiederhole den Vorgang, bis das Element gefunden wird oder das Suchfeld leer ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Zeitkomplexität hat die binäre Suche?

A

Die binäre Suche hat eine Zeitkomplexität von O(log n) im Worst Case.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist eine verkettete Liste?

A

Eine verkettete Liste ist eine dynamische Datenstruktur, bei der jedes Element einen Verweis auf das nächste Element enthält. Dies ermöglicht flexibles Einfügen und Löschen von Elementen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie funktioniert das Einfügen in eine verkettete Liste?

A

Beim Einfügen wird ein neuer Knoten erstellt, dessen Verweis auf den nächsten Knoten zeigt. Der Vorgängerknoten wird so umgeleitet, dass er auf den neuen Knoten verweist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was sind die Vor- und Nachteile von verketteten Listen?

A

Antwort:
- Vorteile: Effizientes Einfügen und Löschen von Elementen
- Nachteile: Langsamer Zugriff, da jedes Element sequentiell durchsucht werden muss

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist eine doppelt verkettete Liste?

A

Eine doppelt verkettete Liste ist eine verkettete Liste, bei der jeder Knoten zusätzlich zum Verweis auf den nächsten Knoten auch einen Verweis auf den vorherigen Knoten hat. Dadurch ist Vor- und Rückwärtsnavigation möglich.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie funktioniert das Löschen in einer doppelt verketteten Liste?

A

Beim Löschen eines Knotens werden die Verweise des vorherigen und des nachfolgenden Knotens so angepasst, dass der gelöschte Knoten übersprungen wird. Dies kann in konstanter Zeit O(1) geschehen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist ein binärer Baum?

A

Ein binärer Baum ist eine rekursive Datenstruktur, bei der jeder Knoten maximal zwei Kindknoten hat. Diese Knoten werden als linker und rechter Kindknoten bezeichnet.

17
Q

Was ist ein Knoten in einem binären Baum?

A

Ein Knoten in einem binären Baum enthält einen Wert (Schlüssel) und Verweise auf maximal zwei Kinderknoten: links und rechts.

18
Q

Was ist die Höhe eines binären Baumes?

A

Die Höhe eines binären Baumes ist die Anzahl der Ebenen vom Wurzelknoten bis zum am weitesten entfernten Blattknoten.

19
Q

Was ist ein binärer Suchbaum (BST)?

A

Ein binärer Suchbaum ist ein binärer Baum, bei dem für jeden Knoten gilt: Alle Knoten im linken Teilbaum haben kleinere Werte, und alle Knoten im rechten Teilbaum haben größere Werte als der aktuelle Knoten.

20
Q

Welche Eigenschaften muss ein binärer Suchbaum erfüllen?

A

Antwort:
1. Jeder Knoten im linken Unterbaum hat einen kleineren Wert als der Knoten selbst.
2. Jeder Knoten im rechten Unterbaum hat einen größeren Wert.
3. Jeder Teilbaum ist selbst ein binärer Suchbaum.

21
Q

Was ist ein AVL-Baum?

A

Ein AVL-Baum ist ein binärer Suchbaum, bei dem der Höhenunterschied zwischen dem linken und rechten Unterbaum eines Knotens maximal 1 betragen darf. Dies sorgt dafür, dass der Baum immer balanciert ist.

22
Q

Was sind die Vorteile von AVL-Bäumen gegenüber binären Suchbäumen?

A

AVL-Bäume garantieren eine ausgeglichene Struktur, was zu einer Worst-Case-Laufzeit von O(log n) für Einfüge-, Lösch- und Suchoperationen führt, während unbalancierte BSTs im Worst Case O(n) benötigen.

23
Q

Wann wird eine Rotation in einem AVL-Baum benötigt?

A

Eine Rotation wird benötigt, wenn nach dem Einfügen oder Löschen eines Knotens der Höhenunterschied zwischen den Teilbäumen eines Knotens größer als 1 wird. Es gibt vier mögliche Rotationen, um den Baum wieder auszubalancieren.

24
Q

Was ist eine einfache Rotation?

A

Eine einfache Rotation tritt auf, wenn ein Knoten und sein Kind auf derselben Seite ein Ungleichgewicht verursachen (links-links oder rechts-rechts). Dabei wird der Knoten nach oben und sein Kind nach unten rotiert, um das Ungleichgewicht auszugleichen.

25
Q

Was ist eine doppelte Rotation?

A

Eine doppelte Rotation wird verwendet, wenn das Ungleichgewicht über zwei Ebenen hinweg auftritt (links-rechts oder rechts-links). Zuerst wird eine einfache Rotation auf der unteren Ebene durchgeführt, dann eine weitere auf der oberen Ebene, um das Gleichgewicht wiederherzustellen.

26
Q

Wie funktioniert das Einfügen in einen AVL-Baum?

A
  1. Der Knoten wird wie in einem binären Suchbaum eingefügt.
  2. Nach dem Einfügen wird von unten nach oben überprüft, ob der Baum noch balanciert ist.
  3. Falls notwendig, werden Rotationen durchgeführt, um den Baum wieder auszubalancieren.
27
Q

Wie wird ein Knoten in einem AVL-Baum gelöscht?

A
  1. Zuerst wird der Knoten wie in einem binären Suchbaum entfernt.
  2. Anschließend wird die Balance jedes betroffenen Knotens überprüft.
  3. Falls der Höhenunterschied zu groß ist, werden Rotationen durchgeführt, um den Baum wieder auszubalancieren.