Basisinformationstechnologie II – Sommersemester 2016 – 18. April 2016
Dr. Jan G. Wieners
Datenstrukturen
Stack, Queue, Li...
Differenzierung anhand von C++ und JavaScript:
 Compiler vs. Interpreter
 Typisierung !: Dynamisch vs. statisch
 Variab...
Datenstrukturen
Datenstrukturen
 Stack / Kellerspeicher
 Queue
 Liste
 Baum
 Traversierungsarten
 Preorder
 Inorder
 Postorder
 L...
Datentyp:
 Bauplan für eine Variable (benannte Speicherstelle im
Arbeitsspeicher des Rechners)
 Legt fest, welche Operat...
Datenstruktur = Daten + Funktionen
Datenstrukturen:
 Stacks (Stapel)
 Queues
 Listen
 Einfach verkettete Listen
 Dopp...
Stack / Kellerspeicher
Typische Stackoperationen / Schnittstellen
 push(x, s)
legt ein Element x auf den Stack s
 top(s), peek(s)
liefert das z...
Queue / Warteschlange
LIFO?
FIFO?
Listen
Um die Liste zu durchlaufen:
 Beginn beim ersten Element („Anker“ für den Beginn der
Liste)
 „next“ zeigt auf das nächst...
Element Einfügen:
 Ursprüngliche Liste:
 Liste nach Einfügen von Element „mat“
Einfach verkettete Liste
bat cat sat vat ...
Element Löschen:
 Ursprüngliche Liste:
 Liste nach Entfernen des Elements „cat“
Einfach verkettete Liste
bat cat sat vat...
Vorteil:
 Elemente lassen sich sehr schnell am Anfang der einfach
verketteten Liste einfügen
Nachteil:
 Über jedes einze...
Charakteristika: Jedes Element verfügt über
 Einen Inhalt
 Einen Zeiger auf das nachfolgende Element
 Einen Zeiger auf ...
Datenstrukturen √
 Stack / Kellerspeicher √
 Queue √
 Liste √
 Baum
 Traversierungsarten
Themenüberblick „Algorithmen...
Extensivform von Spielen (Tic Tac Toe)
Der Minimax-Algorithmus
𝑥0
𝑥1 𝑥2
𝑥4 𝑥5 𝑥6 𝑥7 𝑥8 𝑥9 𝑥10 𝑥11 𝑥12
𝑥3
3 12 8 2 4 6 14 5 2
𝑠 𝑀𝐴𝑋1
𝑠 𝑀𝐴𝑋2
𝑠 𝑀𝐴𝑋3
MAX
MIN 3 2 2
3...
Baum: Begrifflichkeiten
Bäume
Wurzel
Kante
Innerer Knoten / Kindknoten
Blatt
Traversieren  Jeden Knoten des Baumes besuchen
Reihenfolge, in der die Knoten besucht werden:
 Preorder, auch: „Hauptrei...
Rekursive Regel:
 besuche die Wurzel
 Besuche den linken Unterbaum
 Besuche den rechten
Unterbaum
 WLR
Preorder Traver...
Preorder Traversierung – Schritt 0
P
M
S
A A
L
E
T
R
E
E
Preorder Traversierung – Schritt 1
P
M
S
A A
L
E
T
R
E
EAusgabe: P
Preorder Traversierung – Schritt 2
P
M
S
A A
L
E
T
R
E
EAusgabe: P M
Preorder Traversierung – Schritt 3
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S
Preorder Traversierung – Schritt 4
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A
Preorder Traversierung – Schritt 5
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A
Preorder Traversierung – Schritt 6
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L
Preorder Traversierung – Schritt 7
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E
Preorder Traversierung – Schritt 8
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E R
Preorder Traversierung – Schritt 9
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E R T
Preorder Traversierung – Schritt 10
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E R T E
Preorder Traversierung – Schritt 11
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E R T E E
Datenstrukturen √
 Stack / Kellerspeicher √
 Queue √
 Liste √
 Baum √
 Traversierungsarten √
 Preorder √
 Inorder √...
/
 https://commons.wikimedia.org/wiki/File:Universitat_
zu_Koln_Hauptgebaude_ost.jpg
 https://de.wikipedia.org/wiki/Imbiss...
Bit sosem 2016-wieners-sitzung-02_datenstrukturen
Bit sosem 2016-wieners-sitzung-02_datenstrukturen
Bit sosem 2016-wieners-sitzung-02_datenstrukturen
Nächste SlideShare
Wird geladen in …5
×

Bit sosem 2016-wieners-sitzung-02_datenstrukturen

426 Aufrufe

Veröffentlicht am

Bit sosem 2016-wieners-sitzung-02_datenstrukturen

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
426
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
215
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Algorithmus: Eindeutige Beschreibung eines endlichen Verfahrens zur Lösung einer bestimmten Klasse von Problemen

    Komplexität eines Algorithmus: Bedarf an Ressourcen (i.e. Rechenzeit und Speicherplatz)

    Güte eines Algorithmus:
    Qualität der Ergebnisse
    Laufzeit / Rechenbedarf des Algorithmus
  • Einfach verkettete Liste

    Liste  Folge von Elementen; jedes Element = Teil einer Kette

    Jeder Eintrag in der Liste verfügt nicht nur über seinen Inhalt, sondern darüber hinaus über einen Zeiger auf das nächste Listenelement:
  • Extensivform
  • Knotenbeziehungen  Achsen:
    Elternknoten (parent) – Jedes Element verfügt über einen Elternknoten. Ausnahme: ???
    Vorfahre (ancestor) – Elternknoten von Knoten Beispiel: Der Knoten „2“ ist Vorfahre des Knotens „3“.
    Kind (child) – Untergeordnete Knoten Beispiel: „3“ ist Kindknoten von „2“.
    Geschwister (siblings): Knoten mit gleichen Elternknoten sind Geschwisterknoten. Beispiel: Der Knoten „3“ ist Geschwisterknoten des Knotens „4“.
  • Bit sosem 2016-wieners-sitzung-02_datenstrukturen

    1. 1. Basisinformationstechnologie II – Sommersemester 2016 – 18. April 2016 Dr. Jan G. Wieners Datenstrukturen Stack, Queue, Liste, Graph
    2. 2. Differenzierung anhand von C++ und JavaScript:  Compiler vs. Interpreter  Typisierung !: Dynamisch vs. statisch  Variablen: Deklaration vs. Initialisierung  Paradigmen: funktionale vs. Objektorientierte Programmierung  Objektorientierung: Klassen, Kapselung, Geheimnisprinzip  Hardwarenahe Programmierung: C++ und Zeiger  Gemeinsamkeiten: Auswahlanweisungen und Kontrollstrukturen  Schichten-Architektur: MVC WS15/16: Programmiersprachen und ihre Unterschiede
    3. 3. Datenstrukturen
    4. 4. Datenstrukturen  Stack / Kellerspeicher  Queue  Liste  Baum  Traversierungsarten  Preorder  Inorder  Postorder  Levelorder Such- und Sortieralgorithmen Themenüberblick „Algorithmen und Datenstrukturen“
    5. 5. Datentyp:  Bauplan für eine Variable (benannte Speicherstelle im Arbeitsspeicher des Rechners)  Legt fest, welche Operationen mit einer Variable möglich sind  Bestimmt die interne Darstellung (Repräsentation) der Variablen im Rechner  Z.B. bool, int, float, double, unsigned int, etc. Algorithmen, Datenstrukturen
    6. 6. Datenstruktur = Daten + Funktionen Datenstrukturen:  Stacks (Stapel)  Queues  Listen  Einfach verkettete Listen  Doppelt verkettete Listen  Bäume  Binärbäume Algorithmen, Datenstrukturen
    7. 7. Stack / Kellerspeicher
    8. 8. Typische Stackoperationen / Schnittstellen  push(x, s) legt ein Element x auf den Stack s  top(s), peek(s) liefert das zuletzt auf den Stack s gelegte Element (ohne das entsprechende Element zu entfernen)  pop(s) entfernt das zuletzt auf den Stack s gelegte Element und gibt es zurück  isEmpty(s) gibt an, ob der Stack s leer ist
    9. 9. Queue / Warteschlange
    10. 10. LIFO? FIFO?
    11. 11. Listen
    12. 12. Um die Liste zu durchlaufen:  Beginn beim ersten Element („Anker“ für den Beginn der Liste)  „next“ zeigt auf das nächste Listenelement  Letztes Glied der Kette: next-Zeiger = NULL  Um wieder auf das erste Element zugreifen zu können: anfang-Zeiger auf das erste Element der Liste  Hilfszeiger auf innere Elemente: cursor Einfach verkettete Liste
    13. 13. Element Einfügen:  Ursprüngliche Liste:  Liste nach Einfügen von Element „mat“ Einfach verkettete Liste bat cat sat vat NULLstart bat cat sat vat NULLstart mat
    14. 14. Element Löschen:  Ursprüngliche Liste:  Liste nach Entfernen des Elements „cat“ Einfach verkettete Liste bat cat sat vat NULLstart bat cat sat vat NULLstart
    15. 15. Vorteil:  Elemente lassen sich sehr schnell am Anfang der einfach verketteten Liste einfügen Nachteil:  Über jedes einzelne Element muss iteriert werden Einfach verkettete Liste bat cat sat vat NULLstart
    16. 16. Charakteristika: Jedes Element verfügt über  Einen Inhalt  Einen Zeiger auf das nachfolgende Element  Einen Zeiger auf das vorhergehende Element Vorteile  Möglichkeit, vom Ende der Liste zum Beginn zu iterieren  Schnelles Löschen und Einfügen von Elementen Nachteil  Speicherplatzbedarf durch zweiten Zeiger erhöht Doppelt verkettete Liste bat cat sat vat NULLstart
    17. 17. Datenstrukturen √  Stack / Kellerspeicher √  Queue √  Liste √  Baum  Traversierungsarten Themenüberblick „Algorithmen und Datenstrukturen“
    18. 18. Extensivform von Spielen (Tic Tac Toe)
    19. 19. Der Minimax-Algorithmus 𝑥0 𝑥1 𝑥2 𝑥4 𝑥5 𝑥6 𝑥7 𝑥8 𝑥9 𝑥10 𝑥11 𝑥12 𝑥3 3 12 8 2 4 6 14 5 2 𝑠 𝑀𝐴𝑋1 𝑠 𝑀𝐴𝑋2 𝑠 𝑀𝐴𝑋3 MAX MIN 3 2 2 3 min(3,12,8)=3 min(2,4,6)=2 max(3,2,2)=3 min(14,5,2)=2
    20. 20. Baum: Begrifflichkeiten Bäume Wurzel Kante Innerer Knoten / Kindknoten Blatt
    21. 21. Traversieren  Jeden Knoten des Baumes besuchen Reihenfolge, in der die Knoten besucht werden:  Preorder, auch: „Hauptreihenfolge“ / Tiefensuche  Inorder, auch: „symmetrische Reihenfolge“  Postorder, auch: „Nebenreihenfolge“  Levelorder, auch: „Breitensuche“ Traversierung
    22. 22. Rekursive Regel:  besuche die Wurzel  Besuche den linken Unterbaum  Besuche den rechten Unterbaum  WLR Preorder Traversierung Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Depth-First-Search.gif&filetimestamp=20090326120256 (MRE)
    23. 23. Preorder Traversierung – Schritt 0 P M S A A L E T R E E
    24. 24. Preorder Traversierung – Schritt 1 P M S A A L E T R E EAusgabe: P
    25. 25. Preorder Traversierung – Schritt 2 P M S A A L E T R E EAusgabe: P M
    26. 26. Preorder Traversierung – Schritt 3 P M S A A L E T R E EAusgabe: P M S
    27. 27. Preorder Traversierung – Schritt 4 P M S A A L E T R E EAusgabe: P M S A
    28. 28. Preorder Traversierung – Schritt 5 P M S A A L E T R E EAusgabe: P M S A A
    29. 29. Preorder Traversierung – Schritt 6 P M S A A L E T R E EAusgabe: P M S A A L
    30. 30. Preorder Traversierung – Schritt 7 P M S A A L E T R E EAusgabe: P M S A A L E
    31. 31. Preorder Traversierung – Schritt 8 P M S A A L E T R E EAusgabe: P M S A A L E R
    32. 32. Preorder Traversierung – Schritt 9 P M S A A L E T R E EAusgabe: P M S A A L E R T
    33. 33. Preorder Traversierung – Schritt 10 P M S A A L E T R E EAusgabe: P M S A A L E R T E
    34. 34. Preorder Traversierung – Schritt 11 P M S A A L E T R E EAusgabe: P M S A A L E R T E E
    35. 35. Datenstrukturen √  Stack / Kellerspeicher √  Queue √  Liste √  Baum √  Traversierungsarten √  Preorder √  Inorder √  Postorder √  Levelorder √ Such- und Sortieralgorithmen Themenüberblick „Algorithmen und Datenstrukturen“
    36. 36. /
    37. 37.  https://commons.wikimedia.org/wiki/File:Universitat_ zu_Koln_Hauptgebaude_ost.jpg  https://de.wikipedia.org/wiki/Imbiss  https://commons.wikimedia.org/wiki/File:Sklep_cejkov ice.JPG Bildnachweise

    ×