Bäume Flashcards

(18 cards)

1
Q

Tafelübung

Definitionen

balancierter Baum

A

Für jeden Teilbaum gilt: Die Höhe des
linken und des rechten Teilbaums
unterscheiden sich maximal um 1.

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

Tafelübung

Definitionen

voller Baum

A

Ein Binärbaum heißt voll, falls alle inneren Knoten den

Verzweigungsgrad zwei besitzen.

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

Tafelübung

Definitionen

vollständiger Baum

A

ein voller Baum dessen Blätter alle

dieselbe Ebene haben

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

Tafelübung

Binärer Suchbaum

Elementare Operationen

A

create: erzeugt einen neuen, leeren binären Suchbaum

makeTree: erzeugt aus einem linken und rechten Teilbaum und
einem Wert vom Typ T einen neuen Binärbaum

insert: fügt einen Wert vom Typ T in den Baum ein
find: überprüft, ob ein Wert vom Typ T im Baum vorhanden ist

delete: löscht einen Wert vom Typ T aus dem Baum

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

Tafelübung

Binärer Suchbaum

Laufzeit (vollständiger Baum)

A

Anzahl der Schritte = Höhe des Baums

Laufzeit O(log n)

(es muss ja nicht jeder Wert durchsucht werden)

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

Tafelübung

Binärer Suchbaum

Implementierung class TreeNode

A
private static class TreeNode {
    public int value;
    public TreeNode left;
    public TreeNode right;
}
private TreeNode root;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tafelübung

Binärer Suchbaum

Implementierung iterativ Einfügen

A
TreeNode newNode = new TreeNode(value);
if (root == null) {
    root = newNode;
    return;
}
TreeNode node = root;
while (true) {
    if (value < node.value) {
        // links
        if (node.left == null) {
            node.left = newNode;
            break;
        }
        node = node.left;
    } else {
       // analog für rechts
    }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tafelübung

Binärer Suchbaum

Anzahl knoten (rekursiv)

A

vorher if Statement, falls node == 0 return 0

return 1 + count(node.left) + count(node.right)

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

Tafelübung

Binärer Suchbaum

Anzahl knoten (rekursiv)

A
public int height(TreeNode node) {
    // Abbruchfall
    if (node == null ||
        (node.left == null &amp;&amp;   node.right == null)) {
        return 0;
    }
    // Rekursionsfall
    return 1 + Math.max(height(node.left),
height(node.right));
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Tafelübung

Binärer Suchbaum

Größter Wert

A

größter Wert steht ganz rechts!

if (node.right == null) {
    return node.value;
} else {
    return max(node.right);
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Tafelübung

Binärer Suchbaum

Traversieren von Bäumen

A
  1. Tiefensuche (Depth-First Search, DFS):
    - Pre-Order
    Wurzel – linker Teilbaum – rechter Teilbaum
    - In-Order
    linker Teilbaum – Wurzel – rechter Teilbaum
    - Post-Order
    linker Teilbaum – rechter Teilbaum – Wurzel
  2. Breitensuche
    erste Ebene – zweite Ebene – dritte Ebene – . . .
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Tafelübung

Binärer Suchbaum

Laufzeit (worst case)

A

Komplexität O(n)

Dann wenn Binärbaum genau einen Strang hat.

Abhilfe AVL-Baum

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

Tafelübung

Binärer Suchbaum

Implementierung - Print der Knoten in in-Order Reihenfolge

A
public class Tree {
    private int value;
    private Tree left;
    private Tree right;
     /* ... */
    public void print() {
        if (left != null) {
            left.print();
        }
        System.out.println(value);
        if (right != null) {
right.print();
        }
     }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

KLAUSURAUFGABE WS 17

Welche Aussage(n) trifft/treffen auf binäre Bäume zu?
Binäre Bäume können unbalanciert sein, aber ein binärer Baum kann
unter keinen Umständen zu einer verketteten Liste werden.

Wenn ein binärer Baum post-order traversiert wird, werden die Einträge
immer in einer sortierten Reihenfolge zurückgegeben, unabhängig davon,
ob der Baum balanciert ist oder nicht.

Wenn ein binärer Baum pre-order traversiert wird, wird das Maximum
der Datenelemente immer zuletzt besucht.

A

eigene Lösung
1. falsch, wenn Binärbaum einen Strang hat wird er zur Liste

  1. falsch, da der rechte Teilbaum vor der Wurzel durchlaufen wird
  2. Richtig, da bei PreOrder von oben nach unten und links nach rechts gegangen wird
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

KLAUSURAUFGABE WS17 Sind die folgenden Aussagen zu Binärbäumen wahr oder falsch?

  • „Jeder volle Baum ist gleichzeitig auch ein balancierter Baum.“
  • „Jeder vollständige Baum ist gleichzeitig auch ein balancierter Baum. “
A

eigene Lösung

Baum kann “voll” aber nicht “balanciert” sein. Also alle Endebenen haben Blätter unterscheiden sich aber um teilweise mehr als 1 (Kriterium für balancierten Baum)

Ein vollständiger Baum ist ein voller Baum, bei dem alle Blätter auf der gleichen Ebene liegen. Dieser ist dann auch balanciert

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

KLAUSURAUFGABE WS15

Welche Aussage(n) trifft/treffen auf voll besetzte Binärbäume zu?

  1. Jeder Knoten außer der Wurzel hat 2 Vorgänger.
  2. Alle inneren Knoten haben den gleichen Verzweigungsgrad.
  3. Die Gesamtzahl der Knoten ist immer 2^h, wobei h die Höhe des Binärbaumes
    ist.
  4. Die Anzahl der Knoten der letzten besetzten Ebene ist eine 2er-Potenz.
  5. Die Anzahl der Knoten der letzten besetzten Ebene der Höhe h ist immer
    2^h.
  6. Die Anzahl der Blatt-Knoten des Binärbaumes der Höhe h ist 2^h
A

eigene Lösung
1. ja voll = überall blätter

  1. ja voll = alle 2 Blätter/Nachfolgeknoten
  2. falsch
  3. falsch, können auch 6 oder 10 sein
  4. falsch, da ja nicht alle knoten bis zur letzten Ebene gehen
  5. falsch
17
Q

Welche Aussage(n) trit/treen auf vollständig besetzte Binärbäume zu?

  1. Jeder Knoten außer der Wurzel hat 2 Vorgänger.
  2. Alle inneren Knoten haben den gleichen Verzweigungsgrad.
  3. Die Gesamtzahl der Knoten ist immer 2^h, wobei h die Höhe des Baumes
    ist.
  4. Die Anzahl der Knoten der letzten besetzten Ebene ist eine 2er-Potenz.
  5. Die Anzahl der Knoten der letzten besetzten Ebene der Höhe h ist immer
    2^h.
A

eigene Lösung
1. richtig

  1. richtig
  2. nein, immer 2^h +1
  3. richtig, weil vollständig: 2,4,8…
  4. richtig
18
Q

KLAUSURAUFGABE SS15

Welche Aussage(n) trifft/treffen auf binäre Bäume zu?

  1. Binäre Bäume können unbalanciert sein, aber ein binärer Baum kann
    unter keinen Umständen zu einer verketteten Liste werden.
  2. Wenn ein binäre Baum postorder traversiert wird, werden die Einträge
    immer in einer sortierten Reihenfolge zurückgegeben, unabhängig davon,
    ob der Baum balanciert ist oder nicht.
  3. Wenn ein binärer Baum präorder traversiert wird, wird das Maximum
    der Datenelemente immer zuletzt besucht.
A

eigene Lösung
1. falsch, wenn Binärbaum einen Strang hat wird er zur Liste

  1. falsch, da der rechte Teilbaum vor der Wurzel durchlaufen wird
  2. Richtig, da bei PreOrder von oben nach unten und links nach rechts gegangen wird