CSCI2100A Data Structure

  • Department of Computer Science and Engineering
    The Chinese University of Hong Kong
    2025-2026 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

Teaching Assistant

Jinghao Wang
  • Office: SHB 913
  • Office Hour: 2-3pm Tues
  • Contact: jhwang24@cse.cuhk.edu.hk
Shaoning Li
  • Office: SHB 121
  • Office Hour: 2-3pm Thur
  • Contact: snli24@cse.cuhk.edu.hk
Fan Zhang
  • Office: SHB 903
  • Office Hour: 2-3pm Thur
  • Contact: fzhang25@cse.cuhk.edu.hk
Yujie Huang
  • Office: SHB 101 (5)
  • Office Hour: 3-4pm Tues
  • Contact: yjhuang@cse.cuhk.edu.hk
Zhouliang Yu
  • Office: SHB 1004
  • Office Hour: 9-10am Mon
  • Contact: zlyu25@cse.cuhk.edu.hk

Syllabus

Monday Tuesday Wednesday
5 Jan 0. Logistics (slide 0)
1. Introduction & Basics (slide 1)
6 JanTutorials on Linux CMD and GitHub (slide) 7 Jan2. Complexity & Analysis (slide 2)
12 Jan 3. ADT, List, Stack, Queue (slide 3) 13 JanTutorials on Stakc and Queue 14 Jan 4. Review I (slide 4)
19 Jan 5. Hash (slide 5) 20 JanTutorials on Hash 21 Jan 6. Sorting I (slide 6)
26 Jan 7. Sorting II (slide 7) 27 JanTutorials on Sorting: Merge & Quick Sort 28 Jan 8. Divide-and-Conquer (slide 8)
2 Feb 9. Greedy (slide 9)
10. Dynamic Programming I (slide 10)
3 FebTutorials on D&C/Recurrence 4 Feb 11. Review II (slide 11)
9 Feb12. Tree I 10 FebTutorials on Basic Greedy and DP 11 Feb13. Graph I
Lunar New Year
23 Feb14. Searching I:
Binary Search, BST
24 FebTutorials on Searching: BST 25 Feb15. Searching II:
BFS, DFS
Reading Week
9 MarMidterm 10 MarTutorials on Searching:
DFS, Eight Queens
11 Mar16. Dynamic Programming II:
Linear DP, Knapsack, LIS, Tree DP,
Prob. DP, Plug DP
16 Mar16. Dynamic Programming II 17 MarTutorials on DP:
LIS, n log(n)
18 Mar17. Tree II:
Heap, Disjoint Tree, KD Tree,
B+ Tree, Segment Tree
23 Mar17. Tree II 24 MarTutorials on Tree:
Priority Queue & Disjoint Tree
25 Mar17. Tree II
30 Mar18. Graph II:
Prim, Kruskal,
Dijkstra, Bellman-Ford
31 MarTutorials on Graph:
MST, Krusal & Prim
1 Apr18. Graph II
Days following Ching Ming Festival & Easter Monday 8 Apr18. Graph II
13 Apr19. Review III 14 AprTutorials on Graph:
Shortest Path, Dijkstra & Bellman-Ford
15 Apr20. Summary