Datenstrukturen II Flashcards

1
Q

Graph

A
  • G := (N, E)
  • N := nodes, nicht-leere Menge von Knoten ni
  • E := edges, nicht-leere Menge von Kanten (ni, nj)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Königsberger Brückenproblem

A
  • Gibt es eine Rundreise die über alle Brücken führt ?
  • Problem einen Graphen zu erstellen und nach einem eulerschen Kreis zu suchen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Labyrinth

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

Kantenarten

A
  • ungerichtet: [n1, n2]
  • gerichtet: (n1, n2)
  • mehrfache
  • Grad (Eingangs- und Ausgangsgrad, oder bei ungerichtet: #Kanten)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Graphendarstellung

A
  • Mengenschreibweise: G = (N, E) mit N = {1,2,3,4} und E = {(1,2), (1,4), (2,3), (2,4), (3,1), (4,4)}
  • graphische Darstellung
  • Adjazenzliste: 1 -> 2 -> 4; 2 -> 3 -> 4; 3 -> 1; 4 -> 4
  • Adjazenzmatrix: 0 - falsch; 1 - wahr
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Zusammenhängender Graph

A

Für alle n, n‘ ϵ N existiert ein Pfad der n und n‘ verbindet

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

Gerichteter azyklischer Graph

A
  • (DAG, engl. directed acyclic graph)
  • gerichteter Graph ohne Zyklen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wurzel/ -graph

A
  • Wurzel: ein Knoten n eines DAG ohne eingehende Kanten
  • Wurzelgraph: DAG mit nur einer Wurzel

⇒ muss kein zusammenhängender Graph sein

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

Transitive Hülle

A
  • Knoten, die durch einen Pfad verbunden sind, werden durch eine Kante direkt miteinander verbunden
  • geschrieben: G+=(N,E+) mit E+ = {(i, j)| Es existiert ein Pfad von Knoten i nach j in G}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Tiefensuche

A
  • Aufgabe: Besuche alle Knoten
  • DFS = depth-first search
  • “Verfolge Weg solange, bis nicht mehr weiter / bereits besuchter Knoten

⇒ Erst wenn eine Richtung komplett durchsucht, wird nächste Alternative in Angriff nehmen

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

Breitensuche

A
  • Aufgabe: Besuche alle Knoten
  • BFS = breadth-first search
  • “Besuche zuerst alle direkten Nachfolger, danach deren Nachkommen

⇒ Betrachte zuerst alle Alternativen und verfolge dann jeweils die Richtung weiter

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

n.setMarked()

A
  • nur bei nichtzusammenhängenden Graphen notwendig

⇒ Suchalgo muss zusätzlich zu allen benachbarten alle nicht markierten Knoten absuchen

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

Baum/Wald/Blatt

A
  • Baum: Wurzelgraph, in dem zu jedem Knoten genau ein Pfad von der Wurzel aus führt
  • Wald: DAG mit mehreren Wurzeln, aber eindeutigen Pfaden
  • Blatt: Knoten ohne Nachfolger
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Bäume: Höhe, Tiefe, Ordnung

A
  • Tiefe: Anzahl der Kanten vom Knoten bis zur Wurzel des Baumes (= Abstand Knoten von Wurzel)
  • Höhe: Größter Abstand eines Knotens zur Wurzel (= maximale Tiefe, auf gesamten Baum bezogen)
  • Ordnung: maximale Ausgangsgrad, Maximale Anzahl an Kindknoten eines Knotens
  • Konsistenzbedinung (bei Knoten: Menge T an Kinder-Knoten und Datenelement)
  • Operation auf Bäumen:
    • rekursive Struktur rekursive → Algorithmen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Balancierter Baum

A
  • Für alle Paare von Blättern (x,y) gilt: |Tiefe(x) – Tiefe(y)| ≤ 1
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Binärer Baum

A
  • Baum der Ordnung n → n-ärer Baum

⇒ bei n = 2: binärer Baum, d.h. jeder Knoten hat maximal 2 Kinder

17
Q

Traversierungsstrategien für binäre Bäume

A
  • allgemein: “links vor rechts”
  • preorder: (WLR) - Hauptreihenfolge - links
  • inorder: (LWR) - Symmetrische Reihenfolge - unten
  • postorder: (LRW) - Nebenreihenfolge - rechts
  • *Inorder gibt die Elemente des binären Suchbaums in der Reihenfolge der zugrunde liegenden Ordungsrelation an (Bsp. Alphabetisch) *
18
Q

Binärer Suchbaum

A
  • binärer Baum, in dem alle Knoten einen Wert haben nach welchem sie geordnet sind (L<w>
    </w>

⇒ inorder liefert aufsteigend sortierte Reihenfolge

  • Eigenschaften:
    • schnelle Suche, wenn Baum balanciert
    • keine Duplikate, alle Werte paarweise verschieden
    • Einfügenn & Löschen müssen Sortierordnung erhalten
19
Q

Binäre Suchbäume: Löschen

A
    1. Fall: Knoten hat keinen Nachfolger (Blatt)
      * Suche Knoten und setze Verweis von Vaterknoten auf Blatt = null
    1. Fall: - “ - genau einen - “ -
      * Suche Knoten und setze Verweis Vaterknoten = nicht-leeren Nachfolger des zu löschenden Knotens
    1. Fall: - “ - zwei - “ -
      * Suche Knoten und ersetze zu löschenden Knoten durch größten Knoten (von Wurzel aus: rechtsmöglichst) des linken Teilbaums (Invariante W < R)
      * Korrigiere Verweise (die auf rechtsmöglichsten Knoten zeigen)