Abstrakter Datentyp Queue und Tree Flashcards
Warum sagt man, eine Schlange arbeitet nach dem FIFO-Prinzip?
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.
Nenne die Methoden einer Schlange
empty
enque
front
deque
Nenne die Methoden einer Schlange
empty
enque
front
deque
Schreibe wie ich eine generische Klasse Box deklariere
public class Box <T>{</T>
Beschrifte einen Baum, welche Bestandteile hat er?
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.
Nenne die Methoden eines Baumes
boolean empty()
Baum left()
Baum right()
Object value()
Was kann ein Knoten alles sein?
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)
Nenne die drei Traversierungsarten für einen Baum
Inorder- Traversierung
Preorder-Traversierung
Postorder-Traversierung
Was ist die Traversierung eines binären Baumes?
Das systematische besuchen aller Knoten in einer bestimmten Reihenfolge
Wie funktioniert die Inorder-Traversierung?
Reihenfolge LVR
Er geht immer soweit wie es geht in die Tiefe, um links zu erreichen. Siehe Bild:
https://i.imgur.com/FcHS9Z9.png
Wie funktioniert die Preorder-Traversierung?
Reihenfolge VLR
https://i.imgur.com/mSZPbmg.png
Wie funktioniert die Postorder-Traversierung?
Reihenfolge LRV
https://i.imgur.com/IcCURwJ.png
Erkläre wie die Tiefensuche bei einem binären Baum funktioniert
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
Erkläre die Breitensuche im binären Baum
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
Erkläre wie der Rekrusive anzahlKnoten(Baum b) funktioniert
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());
}