Abstrakter Datentyp Queue und Tree Flashcards

1
Q

Warum sagt man, eine Schlange arbeitet nach dem FIFO-Prinzip?

A

Weil neu hinzugefügte Elemente Nachfolger vom letzt hinzugefügten Element sind. Der Head bleibt solange auf dem ältesten Element, bis dieses Dequed wird. Dann wandert der Head auf das nächst älteste Element.

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

Nenne die Methoden einer Schlange

A

empty
enque
front
deque

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

Nenne die Methoden einer Schlange

A

empty
enque
front
deque

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

Schreibe wie ich eine generische Klasse Box deklariere

A

public class Box <T>{</T>

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

Beschrifte einen Baum, welche Bestandteile hat er?

A

Im Grunde ist der Baum eine Verkettung von Knoten.
Der Quellknoten ist der Wurzelknoten. Ein Knoten besteht aus zwei Zeigerattributen links, rechts, diese zeigen auf den nächsten Knoten, und einem Inhaltattribut.

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

Nenne die Methoden eines Baumes

A

boolean empty()
Baum left()
Baum right()
Object value()

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

Was kann ein Knoten alles sein?

A

Der Wurzelknoten des gesamten Baumes
Der Wurzelknoten eines Teilbaums
Wenn der Knoten links und rechts null hat, also keine Kinder, dann ist er ein Blatt(leaf)

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

Nenne die drei Traversierungsarten für einen Baum

A

Inorder- Traversierung
Preorder-Traversierung
Postorder-Traversierung

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

Was ist die Traversierung eines binären Baumes?

A

Das systematische besuchen aller Knoten in einer bestimmten Reihenfolge

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

Wie funktioniert die Inorder-Traversierung?

A

Reihenfolge LVR
Er geht immer soweit wie es geht in die Tiefe, um links zu erreichen. Siehe Bild:
https://i.imgur.com/FcHS9Z9.png

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

Wie funktioniert die Preorder-Traversierung?

A

Reihenfolge VLR
https://i.imgur.com/mSZPbmg.png

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

Wie funktioniert die Postorder-Traversierung?

A

Reihenfolge LRV
https://i.imgur.com/IcCURwJ.png

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

Erkläre wie die Tiefensuche bei einem binären Baum funktioniert

A

Man geht links vor rechts in die Tiefe.
Wenn man ganz unten angekommen ist, geht man den nächsten Pfad der rechtsabgeht wieder links vor rechts in die Tiefe.
https://i.imgur.com/Kel3XWD.png

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

Erkläre die Breitensuche im binären Baum

A

Man fängt oben an der Wurzel an zu zählen und dann Ebene für Ebene von oben links nach unten rechts
https://i.imgur.com/9yZ3DYu.png

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

Erkläre wie der Rekrusive anzahlKnoten(Baum b) funktioniert

A

Der Algorithmus fängt bei der Wurzel an. Hier ist der Zähler bereits bei 1. Jetzt ruft sich die Methode rekursiv aber mit linker und rechter tochter auf. Sollte mind. eins existieren, steigt der Zähler wieder um +1.

Solange bis keine Tochter mehr da empty(), dann return 0.

Code:
public static int anzahlKnoten(Baum b){
if(b.empty()) return 0;
else return 1 + anzahlKnoten(b.left) + Anzahl Knoten(b.right());
}

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

Was ist ein Suchbaum

A

Ein binärer Baum, bei dem alle Einträge des Teilbaums links vom Knoten x kleiner sind, und rechts größer. https://i.imgur.com/aMov34R.png

17
Q

Warum hat man Suchbäume entwickelt?

A

Eine sehr effiziente Datenstruktur, mit der Lookup, insert und delete sehr effizient geht.

18
Q

Wie ist die Komplexität des Suchbaums. Nenne Best case, Worst case & Average case

A

BestCase (Jeder Knoten hat zwei Töchter) ausgenommen Blätter (leaf)
h = log(n) Wegknoten
h == höhe
n == Anzahl der Knoten

Worst Case: Elemente untereinander eingegeben
Der Baum wird zur Liste…
Aufwand 0(n)

Average case: O(log(n))

19
Q

Was ist ein AVL-Baum?

A

Ein ausgeglichener binärer Suchbaum. Das bedeutet: Die Höhen der Töchterknoten unterscheiden sich maximal um 1.

20
Q

Ein unausgeglichener Baum hat irgendwo einen Knoten, der unausbalancierte Kinder hat.
Nenne die Bezeichnungen, um die Position dieses unausgeglichenen Knotens zu finden.

A

Man unterscheidet zwischen vier Fällen. Man guckt an welcher Position ausgehend von der Wurzel, der unausgeglichene Knoten hinzugefügt wurde.
LL == Linker Teilbaum Linkes Kind
RR == Rechter Teilbaum Rechtes kind
LR == Linker Teilbaum Rechtes Kind
RL == Rechter Teilbaum Linkes Kind

21
Q

Unbalancierte Wurzel LL, welche Rotation macht man?

A

Eine Rechtsrotation, sodass die Wurzel des Fehlerhaften Teilbaums nun die Wurzel des gesamten Baumes ist.

22
Q

Unbalancierte Wurzel RR, welche Rotation macht man?

A

Eine Linksrotation, sodass die Wurzel des Fehlerhaften Teilbaums nun die Wurzel des gesamten Baumes ist.

23
Q

Unbalancierte Wurzel LR, welche Rotation macht man?

A

Eine Doppelrotation, sodass der Vater des Fehlerhaften Elements nun die Wurzel des gesamten Baumes ist.
Das Fehlerhafte Element wird dann korrekt einsortiert.

24
Q

Unbalancierte Wurzel RL, welche Rotation macht man?

A

Eine Doppelrotation, sodass der Vater des Fehlerhaften Elements nun die Wurzel des gesamten Baumes ist.
Das Fehlerhafte Element wird dann korrekt einsortiert.

25
Q

Unbalancierte Wurzel LL, welche Rotation macht man?

A
26
Q

Was ist ein Heap

A

Ein binärer Baum, bei dem alle Ebenen von links nach rechts besetzt sind. Lediglich die letzte muss nicht vollständig besetzt sein. Mind. jedoch ein Element, sonst existiert die Ebene nicht.
Der Vater ist immer <= der Töchter

27
Q

Wenn man in einem Heap ein neues Element hinzufügt, wie findet man dann für das Element die richtige Position?

A

Man vergleicht das Element mit jeweils dem Vater, wenn Element < Vater, tauscht man die Positionen der Elemente.

28
Q

Was ist Hashing?

A

Zum abspeichern von Objekten an einem bestimmten Index(Speicheradresse) verwendet man eine Hashfunktion. Diese rechnet einem schnell, die Adresse für das zu speichernde Objekt aus.

29
Q

Unterschied offenes und geschlossenes Hashing

A

Beim offenen werden bei Kollisionen, Listen für dieses Index erstellt, in dem alle Objecte drin stehen.

Beim geschlossenen Hashing wird, wenn ein Platz bereits belegt ist, sondiert oder nochmal gehashed.
Idee ist, dass man relativ schnell ausgehend von dem eigentlich errechneten Platz, einen neuen leeren findet.

30
Q

Nenne die Anzahl der Schritte mitdouble Hashing für die erfolglose Suche und die erfolgreiche Suche

A

alpha = Auslastungsfaktor
Erfolglos = 1/(1-alpha)
Erfolgreich = -ln(1-alpha)/alpha

31
Q

In einem Heap.. Der Vater hat Index 27, welchen Index hat der linke Sohn?

A

2*i+1 = 55

32
Q

Welchen Index hat der Vater eines Elements mit der Indexnummer 28?

A

(j-1)/2 = 13 (abgerundet)

33
Q

Schreibe in java das Interface für den abstrakten Datentyp Schlange

A

https://i.imgur.com/f7nfSkv.png

34
Q

Schreibe den java code für das auslesen der Höhe eines Baumes

A
35
Q

Schreibe java code für die inorder Traversierung

A

https://i.imgur.com/XlQejds.png

36
Q

K wird entfernt, wie wird reorgansisiert? Es gibt zwei Möglichkeiten
https://i.imgur.com/iuJSnor.png

A

https://i.imgur.com/QN4p33c.png

37
Q

An welchen Knoten ist unbalanced. Rotiere Korrekt, um AVL Baum herzustellen
https://i.imgur.com/jJyFkeY.png

A

Wurzel 76 und neun
https://i.imgur.com/z4NE1Vo.png

Die oberste Wurzel wo ein Fehler auftritt, wird bearbeitet.

38
Q

Erkläre den Floyds Algorithmus: All Pairs Shortest Path

A

Man erstellt zwei Matrizen. Eine Distanzmatrix und eine Wegematrix. Hier fängt man an, dass man nur einen Knoten zur Hilfe nehmen darf, um zum Ziel zu kommen. In den darauffolgenden macht man dasselbe aber man darf jeweils einen anderen Knoten zur Hilfe nehmen. Es gibt dann n Distanz und Wegematrixen mit n = Anzahl der Knoten.
Die letzte Distanzmatrix zeigt an, wie die kürzesten Strecken zwischen den Punkten ist. Man ändert nämlich nur etwas an der Tabelle, wenn sich ein kürzerer Weg ergibt.