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