Lecturer: Michael Thielscher
- Abstract data types : Stack, queue, string array, creating ADTs...
- Dynamic data structures : Memory allocation, memory leak, pointer and reference, stack & linked list implementation.
- Analysis of algorithms : Time complexity, space complexity, Big-Oh notation.
- Graph data structures : Array of edges, adjacency matrix, adjacency list, DFS & BFS in graph path search.
- Graph algorithms I : Hamiltonian paths/circuits, Euler paths/circuits, directed graphs, transitive closure, PageRank...
- Graph algorithms II : Weighted graphs, minimum spanning tree algorithms (Kruskal, Prim), shortest path algorithms (Dijkstra, Floyd), flow network algorithms (Edmonds-Karp maxflow algorithm)
- Search tree algorithms I : Binary search tree (BST) data structure, tree insertion, deletion, rotation, partition...
- Search tree algorithms II : Self-adjusting trees (AVL, splay, 2-3-4, red-black tree)
- String algorithms : Pattern matching algorithms (Boyer-Moore, KMP), tries, text compression (Huffman code)
- Approximation and randomised algorithms : Approximation, randomised quicksort, Karger's algorithm, Simulation.
- Assignment 1 : Linked list implementation and manipulation. Mark:8.5/10.
- Assignment 2 : Stack implementation, graph path search, DFS. Mark:14/15.
- No responsibility will be taken if some mistakes influence your mark. It is better to check before referencing.
- No responsibility will be taken if copying codes results in detected plagiarism.