**Heads up!** To view this whole video, sign in with your Courses account or enroll in your free 7-day trial.
Sign In
Enroll

Preview

Start a free Courses trial

to watch this video

In this course we're going to answer one fundamental question - why do we need more data structures than a programming language provides? We'll start by exploring one we already know of - arrays

#### Prerequisite Courses

If you'd like to learn how to program with Python before starting this course, check out the Beginning Python track

[MUSIC]
0:00

Hi, my name is Pasan.
0:09

I'm an instructor at Treehouse.
0:10

And welcome to the Introduction
to Data Structures course.
0:12

In this course, we're going to
answer one fundamental question,
0:15

why do we need more data structures
than a programming language provides?
0:18

Before we answer that question,
some house keeping, if you will.
0:23

In this course,
0:27

we're going to rely on concepts we learned
in the introduction to algorithms course.
0:27

Namely, big o notation, space and
time complexity, and recursion.
0:32

If you're unfamiliar
with those concepts or
0:37

just need a refresher,
check out the prerequisite courses listed.
0:39

In addition, this course does assume that
you have some programming experience.
0:43

We're going to use data structures
that come built into nearly
0:48

all programming languages
as our point of reference.
0:51

While we will explain the basics
of how these structures work,
0:54

we won't be going over how
to use them in practice.
0:58

If you are looking to learn how to
program before digging into this content,
1:01

check the notes section of this video for
helpful links.
1:05

If you are good to go, then awesome, let's
start with an overview of this course.
1:08

The first thing we are going to do is to
explore a data structure we are somewhat
1:12

already familiar with, arrays.
1:16

If you've written a code before, there's
a high chance you have used an array.
1:18

In this course, we're going to spend
some time understanding how arrays work,
1:22

what are the common
operations on an array and
1:27

what are the runtimes associated
with those operations?
1:29

Once we've done that,
1:32

we're going to build a data type
of our own called a linked list.
1:34

In doing so, we're going to learn that
there's more than one way to store data.
1:37

In fact,
there's way more than just one way.
1:41

We're also going to explore what motivates
us to build specific kinds of structures
1:44

and look at the pros and
cons of these structures.
1:49

We'll do that by exploring
four common operations.
1:52

Accessing a value, searching for a value,
inserting a value, and deleting a value.
1:55

After that, we're actually going
to circle back to algorithms and
2:00

implement a new one, a sorting algorithm.
2:03

In the Introductions to Algorithms course,
we implemented a binary search algorithm.
2:06

A precondition to binary search was
that the list needed to be sorted.
2:12

We're going to try our
hand at sorting a list and
2:16

open the door to an entirely
new category of algorithms.
2:19

We're going to implement our sorting
algorithm onto different data
2:22

structures and explore how the
implementation of one algorithm can defer
2:26

based on the data structure being used.
2:30

We'll also look at how the choice of
data structure potentially influences
2:32

the runtime of the algorithm.
2:36

In learning about sorting,
we're also going to encounter
2:39

another general concept of algorithmic
thinking called divide and conquer.
2:41

Along with recursion, divide and
2:46

conquer will be a fundamental tool that
we will use to solve complex problems.
2:48

All in due time, in the next video,
let's talk about arrays.
2:52

You need to sign up for Treehouse in order to download course files.

Sign up