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

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