CSCI2100A Data Structure

  • Department of Computer Science and Engineering
    The Chinese University of Hong Kong
    2026-2027 Term 2

Description

This course introduces the concept of abstract data types and the advantages of data abstraction. Various commonly used abstract data types including vector, list, stack, queue, tree, and set and their implementations using different data structures (array, pointer based structures, linked list, 2-3 tree, B-tree, etc.) will be discussed. Sample applications such as searching, sorting, etc., will also be used to illustrate the use of data abstraction in computer programming. Analysis of the performance of searching and sorting algorithms. Application of data structure principles.

Reference Materials

Course Staff

Instructor

Dr. Shengchao Liu
  • Office: SHB 1016
  • Office Hour: By Appointment
  • Contact: scliu@cuhk.edu.hk

Syllabus

Monday Tuesday Wednesday
11 Jan 0. Logistics (slide 0)
1. Introduction & Basics (slide 1)
12 Jan Tutorials on Linux CMD and GitHub (slide) 13 Jan 2. Complexity & Analysis (slide 2)
18 Jan 3. ADT, List, Stack, Queue (slide 3) 19 Jan Tutorials on Stakc and Queue 20 Jan 4. Review I (slide 4)
25 Jan 5. Hash (slide 5)
26 Jan Tutorials on Hash 27 Jan 5. Hash Highlight (slide 5)
6. Sorting I (slide 6)
1 Feb 7. Sorting II (slide 7) 2 Feb Tutorials on Sorting: Merge & Quick Sort 3 Feb 8. Divide-and-Conquer (slide 8)
5–11 Feb: Lunar New Year Vacation
15 Feb 9. Greedy (slide 9)
10. Dynamic Programming I (slide 10)
16 Feb Tutorials on D&C/Recurrence 17 Feb 11. Review II (slide 11)
22 Feb 12. Tree I (slide 12) 23 Feb Tutorials on Basic Greedy and DP 24 Feb 13. Graph I (slide 13)
1 Mar 14. Searching I:
Linear Search, Structure Pruning Search (Binary Search, BST) (slide 14)
2 Mar Tutorials on Searching: BST 3 Mar 15. Searching II:
Exhaustive Branching Search (BFS, DFS) (slide 15)
8–13 Mar: Reading Week
15 Mar Midterm (tentative) 16 Mar Tutorials on Searching:
DFS, Eight Queens
17 Mar 16. Dynamic Programming II:
Linear DP, Table DP, Set DP,
Combinatorial DP, Graph DP,
Game Theory DP (slide 16)
22 Mar 16. Dynamic Programming II:
Linear DP, Table DP, Set DP,
Combinatorial DP, Graph DP,
Game Theory DP (slide 16)
23 Mar Tutorials on DP:
LIS, n log(n)
24 Mar 17. Tree II
AVL Tree, B Tree, B+ Tree, Heap,
Segment Tree, Trie Tree, AC Automaton,
KD Tree, Union-Find (slide 17)
29 Mar Easter Monday 30 Mar Tutorials on Tree:
Priority Queue & Disjoint Tree
31 Mar 17. Tree II
AVL Tree, B Tree, B+ Tree, Heap,
Segment Tree, Trie Tree, AC Automaton,
KD Tree, Union-Find (slide 17)
5 Apr Ching Ming Festival 6 Apr Tutorials on Graph:
MST, Krusal & Prim
7 Apr 17. Tree II
AVL Tree, B Tree, B+ Tree, Heap,
Segment Tree, Trie Tree, AC Automaton,
KD Tree, Union-Find (slide 17)
12 Apr 18. Graph II:
Kruskal, Prim,
Dijkstra, Bellman-Ford,
Floyd-Warshall (slide 18)
13 Apr Tutorials on Graph:
Shortest Path, Dijkstra & Bellman-Ford
14 Apr 18. Graph II:
Kruskal, Prim,
Dijkstra, Bellman-Ford,
Floyd-Warshall (slide 18)
19 Apr 19. Review III 20 Apr Tutorials on Graph:
Shortest Path, Dijkstra & Bellman-Ford
21 Apr 20. Summary