Back to all courses

# Data Structures

## The fundamental toolkit for the aspiring computer scientist or programmer.

The way we store and manipulate data with computers is a core part of computer science. In Data Structures, you'll start with the basics, like arrays and sorting, and build up to more complex data types and data structures.

By the end of this course, you’ll have discovered algorithms that can be used to store data quickly, rearrange it efficiently, and access it easily.

20

210+
1. 1

### Intro to Algorithms

Learn how to store and manipulate data to efficiently answer questions.

1. #### Arrays

Arrays are one of the most fundamental data structures in computing.

2. #### Searching

Arrays are collections of data. You search when you want to know what's in the collection.

3. #### Insertion Sort

Transform an array into a sorted array with this classic algorithm.

4. #### The Speed of Algorithms

How fast does an algorithm run? Use the language computer scientists use to answer this question!

2. 2

### Recursion

We need to go deeper - with this tool for efficiency and elegance in programming.

1. Included with

#### Recursion

Recursion is a concept found in both nature and computer science.

2. Included with

#### Divide and Conquer

We can solve problems in powerful ways by splitting them into pieces first.

3. Included with

#### Mergesort

What's easier than sorting one big sequence? Creating a sorted sequence from two smaller sorted sequences!

4. Included with

#### Quicksort

Quicksort, like Mergesort, uses the divide-and-conquer strategy to quickly sort arrays.

3. 3

### Stacks and Queues

One thing after another.

1. Included with

#### Stacks

Arrange information in a computer the same way you arrange books on your desk.

2. Included with

#### Queues

Many algorithms are like grocery stores: more orderly when everyone waits their turn in line.

4. 4

### Binary Trees

A look at trees (and search trees) in our quest for superior data structures.

1. Included with

#### Binary Trees

Binary trees are a fundamental tool for flexibly organizing data.

2. Included with

#### Traversals

There are many ways to work your way through a binary tree.

3. Included with

#### Binary Search Trees

Binary trees make data easy to store and fast to locate.

4. Included with

#### Tree Rotations

To keep a binary tree balanced, you'll often need to rotate some nodes around.

5. 5

### Heaps

A clever, efficient data structure for data types like priority queues.

1. Included with

#### Priority Queues

A stack or a queue won't help if you need the most important thing first. Priority queues come to the rescue!

2. Included with

#### Binary Heaps

Heaps implement priority queues by bringing the important things to the top of a binary tree.

3. Included with