YSC2229: Introductory Data Structures and Algorithms
1. Software Prerequisites
2. OCaml Style Guide
3. Policies
4. Midterm Project: Memory Allocation and Reclamation
5. Final Project: Vroomba Programming
1. Chapter 01: Introduction
2. Chapter 02: Working with Arrays
3. Chapter 03: Complexity of Algorithms and Order Notation
4. Chapter 04: Divide-and-Conquer Algorithms
5. Chapter 05: Binary Heaps and Priority Queues
6. Chapter 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. Chapter 07: Hashing-Based Data Structures
8. Chapter 08: Searching in Strings
9. Chapter 09: Backtracking and Dynamic Programming
10. Chapter 10: Data Encoding and Compression
11. Chapter 11: Binary Search Trees
12. Chapter 12: Graph Algorithms
13. Chapter 13: Elements of Computational Geometry
YSC2229: Introductory Data Structures and Algorithms
»
6.
Chapter 06: Abstract Data Types
6.
Chapter 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