Programmierübungen
Algorithmen und Datenstrukturen
Sortieren
- C++ mit wxWidgets-GUI: Verschiedene Sortierverfahren.
Programm zum Vervollständigen: gra-sort-angabe.cpp
Musterlösung:
gra-sort.cpp.
(siehe Programmierübungen C für GUI-lose Sortier-Übungen!)
Listen
- C++: Stack als Liste.
Musterlösung:
list-stack.cpp.
- C:
Sortierte, einfach verkettete Liste.
Musterlösung:
liste.c.
- C++, letzte Teilaufgabe mit Templates:
Einfügen & Löschen in sortierter Liste (einfach & doppelt verkettet).
Musterlösungen:
Grundlösung: sorted-list.cpp,
Implementierung mit **: sorted-list-dblptr.cpp,
Doppelt verkettete Liste: sorted-dbl-list.cpp,
Implementierung als Template-Klasse: sorted-list-templ.cpp.
- C++: Radix-Sort mit Listen.
Musterlösung:
radixsort.cpp.
- C: Radix-Sort mit Listen.
Musterlösung:
radix.c.
- C: Listen von Arrays:
Textfiles seitenweise verkehrtherum ausgeben.
Musterlösung:
pagerev.c.
- C: Arrays von Listen:
Textfiles nach Zeilenlänge sortiert ausgeben.
Musterlösung:
lensort.c.
Bäume & Hashtables
- C++, letzte Teilaufgabe mit STL: Wort-Vorkommen zählen.
Musterlösungen:
Grundlösung: baum.cpp,
Mit grafischer Ausgabe & Statistik: baum-stat.cpp,
Mit getFirst & getNext: baum-first+next.cpp,
Mit Löschen (konventionell): baum-delete.cpp,
Mit Löschen (Pointer-auf-Pointer): baum-delete-pp.cpp,
Mit Löschen (rekursiv): baum-delete-rec.cpp,
Unter Verwendung von STL map: baum-map.cpp.
- C: Hashtable: Wortindex.
Zu komplettierendes Programm: xref-hash-ang.c.
Musterlösung:
xref-hash.c.
- C: Unbalancierter Baum: Wortindex.
Musterlösung:
xref-tree.c.
- C, schwierig: Balancierter Baum: Wortindex.
Musterlösung:
xref-tree-bal.c.
- C, schwierig: Trie: Wortindex.
Musterlösung:
xref-trie.c.
- C: Decodierung von Morse-Zeichen.
Musterlösung:
morse.c.
- C++ und/oder C: Unbalancierter Baum mit Löschen und getNext.
Musterlösung:
baum.cpp
(in C: baum-c.c).
- C: Priority Queue (heap).
Musterlösung:
priqueue.c.
Backtracking
- C mit SDL-Grafik:
Backtracking: 8-Damen-Problem.
Musterlösung:
queens.c,
queens-stepbystep.c.
- C mit SDL-Grafik:
Backtracking: Travelling Salesman.
Vorgegebenes Programm zum Weiterschreiben: travel-angabe.c.
Musterlösung:
travel.c.
- C:
Backtracking, Strukturen, qsort, File-I/O formatiert: Rucksack packen.
Meine Gegenstands-Liste: rucksack.txt.
Musterlösung:
rucksack.c,
rucksack-opt.c,
rucksack-file.c.
- C: Backtracking: Graph färben.
Musterlösung:
colors.c.
- C: Backtracking: Buchstabensumme.
Programm zum Vervollständigen: textsumme-ang.c
Musterlösung:
textsumme.c,
textsumme-tricky.c.
- C++ mit wxWidgets-GUI: Backtracking: Sudoku
Übungsaufgabe ist nur der Lösungs-Code:
Gesucht ist der .cpp-File mit der Implementierung der folgenden Klasse:
Solver.h
Zur Ein- und Ausgabe soll der Lösungs-Code Methoden der folgenden GUI-Klasse aufrufen:
Sudoku.h
Die Implementierung dieser Klasse kommt von mir, sie ist nicht Übungsaufgabe:
sudoku.cpp,
sudoku-main.cpp
Musterlösung: solver.cpp.
Graphen
- C mit SDL-Grafik: Graphen: Kruskal's Algorithmus.
Musterlösung:
kruskal.c.
Für Interessierte: Algorithmus von Prim: prim.c.
- C: Graphen: Breadth-First-Durchlauf (zählen, verketten, Tiefe eintragen).
Hauptprogramm zum Weiterschreiben: bfs-main.c
Test-Graph mit 9 Knoten: bfs-data
Erwartete Ausgabe bei ./bfs 9 0 < bfs-data : bfs-out
Musterlösung:
bfs.c.
- C: Graphen: Depth-First-Durchlauf (durchnummerieren, Anzahl In-Edges eintragen).
Hauptprogramm zum Weiterschreiben: dfs-main.c
Test-Graph mit 9 Knoten: bfs-data
Erwartete Ausgabe bei ./dfs 9 0 < bfs-data : dfs-out
Musterlösung:
dfs.c.
- C mit SDL-Grafik: Graphen: Topologisches Sortieren.
Programm zum Vervollständigen: topsort-angabe.c
Musterlösung:
topsort.c,
topsort-tail.c.