CIS 5501 Data Structures and Algorithms
Saturday, October 27 2007 at 21:30, posted by Norman
Sunday, December 23 2007 at 12:30, updated by Norman
This course uses Java which is really great for studying data structure. Basicly, it start from linked list, queue, tree, heap then goes all the way to graph. Program style organization and design with continued emphasis style organization and design with continued emphasis on the use of abstract data types and the object-oriented design paradigm. Comparative analysis of algorithms and data structures. Data structures include heaps, priority queues, binary and general trees, binary search trees, AVL trees, B-trees, and graphs. Algorithms include heapsort, topological sort, breadth-first search, depth-first search, shortest path algorithms, search, depth search, shortest path algorithms, and Huffman coding.
Project 1. Double linked Priority Queue: A very simple program to implement the Java API Queue.
Project 2. Quick Sort: A modified QuickSort with a partitioning algorithm that partitions the array into three segments: less than the pivot, equal to the pivot, and greater than the pivot
Project 3. Red-Black tree: Detailed algorithm can be found on wikipedia
Project 4. Prim's Algorithm for Finding Minimum Spinning Tree: Implement Prim's Algortithm with a Heap Based Priority Queue with a locator
Project 5. Dijkstra's algorithm: Implement Dijkstra's algorithm to find the single-source shortest path problem for a graph with non negative edge path costs.
Project 6. Edmonds-Karp Algorithm: Implement the Edmonds-Karp Algorithm to compute the minimum cost/maximum flow.