YSC2229: Introductory Data Structures and Algorithms
1. Course Syllabus
2. Software Prerequisites
3. OCaml Style Guide
1. Week 01: Introduction
2. Week 02: Working with Arrays
3. Week 03: Complexity of Algorithms and Order Notation
4. Week 04: Divide-and-Conquer Algorithms
5. Week 05: Binary Heaps and Priority Queues
6. Week 06: Abstract Data Types
6.1. Equivalence Classes and Union-Find
6.2. Information Hiding and Abstraction
6.3. Stacks
6.4. Queues
6.5. Exercises
7. Midterm Project: Memory Allocation and Reclamation
8. Week 07: Hashing-Based Data Structures
9. Week 08: Searching in Strings
10. Week 09: Backtracking and Dynamic Programming
11. Week 10: Data Encoding and Compression
12. Week 11: Binary Search Trees
13. Week 12: Graph Algorithms
14. Week 13: Elements of Computational Geometry
15. Final Project: Vroomba Programming
YSC2229: Introductory Data Structures and Algorithms
Docs
»
6. Week 06: Abstract Data Types
6. Week 06: Abstract Data Types
ΒΆ
6.1. Equivalence Classes and Union-Find
6.1.1. Union-Find Structure
6.1.2. Working with Sets via Union-Find
6.1.3. Testing Union-Find
6.2. Information Hiding and Abstraction
6.3. Stacks
6.3.1. The Stack interface
6.3.2. An List-Based Stack
6.3.3. An Array-Based Stack
6.4. Queues
6.4.1. The Queue interface
6.4.2. An Array-Based Queue
6.4.3. Debugging queue implementations
6.4.4. Doubly Linked Lists
6.4.5. A queue based on doubly linked lists
6.5. Exercises
6.5.1. Exercise 1
6.5.2. Exercise 2