Data Structures is an essential area of study for computer scientists and for anyone who will ever undertake any serious programming task. This course deals with the fundamentals of organizing and manipulating data efficiently using clean conceptual models. Students study many of the important conceptual data types, their implementation, and analysis of their efficiency.
Topics will cover algorithm analysis, lists, trees, priority queues, dictionaries (hash tables, balanced search trees), graphs, strings (tries, pattern matching), and sorting.
Name: Jaesik Park
Homepage: https://jaesik.info/
Midterm and final: 60%
Programming Assignment: 40%\
Note: As version of folder says, there was a lot of changes in each programming assignment. And there are many ambiguous stuffs on it.
Sartaj Sahni, "Data Structures, Algorithms, and Applications in C (2nd Ed.)," Silicon Press, 2004
Week 1: Algorithm Analysis
Week 2: Lists, Stacks, Queues
Week 3: Trees
Week 4: Priority Queues & Heaps
Week 5: Sorting
Week 6: Binary Search Trees
Week 7: AVL Trees-1
Week 8: AVL Trees-2 (Mid-term Exam)
Week 9: 2-3 Trees & B-Trees
Week 10: Dictionaries & Hashing
Week 11: Graph & Representations
Week 12: Graph Traversals
Week 13: Shortest Path Finding
Week 14: Minimum-Cost Spanning Trees
Week 15: Tries
Week 16: Expression Trees (Final Exam)