Skip to main content
CS201: Elementary Data Structures
0%
Previous
Course Feedback Survey
Course Introduction
Course Syllabus
Course Terms of Use
Unit 1: Abstract Data Types and Arrays in C++
1.1: Abstract Data Types
Data Abstraction
Sort Template with Callback
Abstract Data Types
Abstract Data Types in C++
Standard Template Library
1.2: Contiguous Implementation
Arrays
1.3: Non-Contiguous Implementation
Memory Allocation in C++
1.4: Introduction to Memory Pointers
Pointers in C++
1.5: Linked Lists
Singly and Doubly-Linked Lists
Examples of Linked Lists
Linked List Programming Exercises
1.6: Arrays
Arrays in C
Additional Features of Arrays
Representations of Arrays
Array Programming Exercises
Unit 1 Assessment
Unit 1 Assessment
Unit 2: Introduction to Stacks and Queues
2.1: Introduction to Lists
Lists
2.2: Implementing Lists with Arrays
Array-Based Lists
2.3: Overview of Stacks and Queues
Stacks and Queues
2.3.1: Introduction to Stacks
Stacks
More on Stacks
Data Structures of Stacks
The Stack Data Structure
2.3.2: Introduction to Queues
Queues
More on Queues
Data Structures of Queues
Unit 2 Assessment
Unit 2 Assessment
Unit 3: Pointers and References in C++
3.1: Review of C-Native Variables
C Data Types
Words in Computer Architecture
3.2: Review of Pointers
Backtracking Pseudocode
3.3: Pointing to Memory
Pointers
3.4: Pointers for Scalars, Vectors, and Functions
Everything You Need to Know about Pointers in C
3.5: Pointers for Arrays
Memory Allocation
3.6: Pointer Arithmetic
C Syntax – Pointers
3.7: Working with Pointers
Pointers
Unit 3 Assessment
Unit 3 Assessment
Unit 4: Dynamic Memory Allocation
4.1: C++ Memory Allocation
Memory Management
Dynamic Memory
4.2: C Memory Allocation
C Data Structures
C Pointers and Dynamic Memory Allocation
4.3: Memory Fragmentation
Stacks and Heaps
Allocations and Deallocations
4.4: C/C++ Based on "Unsafe" Types
Unsafe Languages
Unit 4 Assessment
Unit 4 Assessment
Unit 5: Linked Stacks, Queues, and Lists
5.1: Linked Lists
Linked Lists
Introduction to Linked Lists
Other Ways to Use Linked Lists
Doubly-Linked Lists
5.2: Linked Stacks
Linked Stacks
Implement a Stack using a Linked List
5.3: Linked Queues
Linked Queues
q Module
Unit 5 Assessment
Unit 5 Assessment
Unit 6: Algorithm Efficiency
6.1: The Importance of Algorithm Efficiency
Algorithm Efficiency
Introduction to Efficiency
6.2: Big-O Analysis
Big-O
6.3: Discussions on Algorithm Efficiency
Algorithm Analysis
6.4: Measuring Algorithm Efficiency
Introduction to Algorithms
6.5: Space-Time Tradeoff
Space-Time Tradeoff
Unit 6 Assessment
Unit 6 Assessment
Unit 7: Searching and Sorting Algorithms
7.1: Peak Finding via Vector Search
Algorithmic Thinking and Peak Finding
7.2: Models of Computation and Document Distance
Models of Computation and Document Distance
7.3: Why Sort? Insertion Sort and Merge Sort
Insertion Sort and Merge Sort
Divide and Conquer Methods, Merge Sort, and Exceptions
7.3.1: Big-O Analysis of Merge and Insertion Sort
Insertion Sort
Merge Sort
7.3.2: Merge and Insertion Sort in C/C++
Examples of Insertion and Merge Sorts in C++
7.4: Linear Search
Linear Search
7.5: Fibonacci Search
Fibonacci Search
7.6: Binary Search, Bubble Sort, and Selection Sorts
Binary Search, Bubble Sort, and Selection Sort
Binary Search, Bubble Sort, and Selection Sort in C++
7.7: Quicksort
Quicksort and Randomized Algorithms
Recursive Quicksort in C++
Non-Recursive Quicksort in C++
Unit 7 Assessment
Unit 7 Assessment
Unit 8: Hash Tables, Graphs, and Trees
8.1: Hash Tables
Hashing with Chaining
Table Doubling and Karp-Rabin
Open Addressing and Cryptographic Hashing
Hashing
8.2: Graphs
Graphs
Graphs and Network Flows
Finding Non-Cyclical Paths between Arbitrary Pairs of Nodes
8.2.1: Graph Searches
C Program for Depth-First Search in a Graph
Breadth-First Search
8.2.2: Finding Lowest-Cost Paths
Dijkstra's Algorithm
Bellman's Algorithm
8.2.3: Finding a Minimum Spanning Tree
Minimum Spanning Trees – Kruskal's Algorithm
Minimum Spanning Trees – Prim's Algorithm
8.3: Trees
Trees
Binary Trees
Non-Binary Trees
Unit 8 Assessment
Unit 8 Assessment
Study Guide
CS201 Study Guide
Course Feedback Survey
Course Feedback Survey
Certificate Final Exam
CS201: Certificate Final Exam
Proctor-Verified Final Exam
Archived Materials
Next
Side panel
Course Catalog
All categories
Arts & Humanities
Art History
Communication
English
Philosophy
Business Administration
Computer Science
English as a Second Language
Professional Development
General Knowledge for Teachers
Science and Math
Biology
Chemistry
Mathematics
Physics
Social Science
Economics
Geography
History
Political Science
Psychology
Sociology
Home
Specialization Programs
Specialization Programs
MBA Degree Program
Help
Getting Started
Help Center & FAQ
Search
Search
Search
Search
Close
Toggle search input
You are currently using guest access
Log in
Course Catalog
Collapse
Expand
All categories
Arts & Humanities
Art History
Communication
English
Philosophy
Business Administration
Computer Science
English as a Second Language
Professional Development
General Knowledge for Teachers
Science and Math
Biology
Chemistry
Mathematics
Physics
Social Science
Economics
Geography
History
Political Science
Psychology
Sociology
Home
Specialization Programs
Collapse
Expand
Specialization Programs
MBA Degree Program
Help
Collapse
Expand
Getting Started
Help Center & FAQ
Expand all
Collapse all
Open course index
CS201: Elementary Data Structures
Course Feedback Survey
Course Feedback Survey
Course Feedback Survey
Completion requirements
Click on
Course Feedback Survey
to open the resource.