Do you want to move on to the neck level?

You understand strings and lists and even dictionaries, but you want to know

what to use, how to use it and when. To start off with what is a data structure?

It’s a type of store, a structure that holds items in Python. There are

different types of collections which is basically a form of storage that you can

add and remove items. Things like strings and lists we’ve also mentioned

dictionaries and sets and tuples. So strings you would think of normal

text that would be a string. A list, the same as in real life, a list, which really

is a collection of items. So here we have a collection of word,s if we had the

words with spaces like a normal sentence we would probably use a string, but in

this case we want the separate words, do you want a string or a list? Well in this

case we want the individual words we want a list. Here’s a collection of passport numbers so do we need a list?

Well the passport numbers need to be unique so we want a set so there’s no

duplicates, so not a list. Here’s some scores 81 79 73 and 78 but whose scores

are they? So in this instance, this case, we want the person’s name who got the score, so we can use a dictionary called scores that has if you like a label with their

name attached to the score, you can remember we have a dictionary of scores.

We mentioned sets which are like a list but they don’t have duplicates, you can’t

sort them. Tuples a bit like a list again don’t really have so much

functions and they are immutable, you can’t change the

items. So we have in computer science different data structures, not the data

structures we’ve seen like lists and dictionaries and strings that are built

into Python, but we do need these different types of storage, and they’re

based on real-life scenarios so for example a queue. With a queue of people we have

people join the back and then people leave off the front so that’s a queue. A

stack we add to a stake by put it on top and if we want to take something off we

have to take it off from the top. If we want whats on the bottom we have to take all

the things on top off first, that’s a stack. The heap is an ordered

queue by the way. So you think of like queue as someone entering it at the end

and back and exit in it and the front and a stack you enter you put on, the top,

and you take off the top, so these are slightly different and why is it

important? When you want to solve a problem you might need to store things

either temporarily over a long period of time. But you need the correct structure

the correct storage so what does that mean? OK. Let’s have a problem and try

to solve it. Here’s a maze. The entry is to the left as you look at it so we

enter and we choose our option either to go left or right and then we follow

through in the maze and then we have another option to go left or right

column through the maze again another option to go left or right

if we choose the wrong option we end up in a dead-end so we have to go back to

our last choice. Hopefully, at some point, we get the maze correct and we come

out the exit this is a quite simple example of a maze. So let’s have a look.

Here we’ve got three places where we make a choice of left or right. So we’ve

got one two and three then exit so we’ve got a choice of left or right left the

right and left or right. So we choose left then left again, then we get

blocked ,dead end, so we go back and choose right and then left again and

then we come out of our exit. Let’s have a look at our data structures what

about a stack? Well we started off going left,

then we went left again then that left was wrong so we take that out and put in

right ,then we go left and then we had the exit, so the stack worked we had left

left then we took her out right the left to finish with the solution left right

left. So in terms of what we’re doing just for the stack first of all we push

so when we enter something’s called push so we got to push in left are you’re

going to push in left again then we’re going to pop out left because it was

wrong so that’s exiting so it’s pop and then

we’re going to push right and then we’re going to push left again and then we

have our correct solution left right left. So we can push and pop into our

stack and it works. What about our queue? So here we’ve got a queue going from

left to right so left is at the front of the queue right is the back of the queue.

So we’re going to push in our left then we’re going to push in another left

we’re going to pop that out goes out the back then we’re going to push in a right

and then we’re going to push in a left that gives us our left right left.

But that wasn’t, that didn’t work the right way because with a queue

remember when we get something when something leaves a queue when something

needs a queue it leaves from the fry so we pushed in left from the end of the

queue so there’s no one in the queue, so that’s the first item in the queue, left,

then we push in left again so that’s the second left the second one in the queue.

So when something exits from the queue when it’s popped it comes from the front

when someone’s in a queue and they want to leave the queue they leave from the

front so that how a queue works, so that left it’s wrong, that’s wrong. So the other

method of using a stack would work but this method of using a queue is not

appropriate to solving the problem with the maze. OK I hope you understood that

it was an example of how different structures can be used for different

things. Trees and graphs. So here’s a tree we have a as at the top the root and it

has children B and C C has a child F and B has two children D and E this is also

a data structure you use quite a lot so you might say in real life of a family

tree or an organizational chart but essentially it has something in the top

and this has children, you can call these nodes, and each node can have children,

can I have one or more and we go down the tree. Now a graph is different a

graph if you like is like a tree but the children can go back up so here we’ve

got several nodes and they’re all connected so this is kind of like a

a cyclic graph like a circle. Here we’ve got another graph so some nodes are

connected there some or not but it’s not a tree there’s not one at the top some

going down. So therefore if you like a parent can have children and those

children could be parents of other children so it’s not really a tree it’s

a graph. So a graph we can connect between any node to another node. So

these are two data structures we haven’t seen

yeah but just wanted to show you them and in real life for example we can have

maps so if you want to connect cities in the world that would be a graph or even

a diagram of an underground is a graph, yeah you can think of the stations as

nodes and the lines the train lines or even bus lines or the connecting lines

between these nodes so the graph has nodes and in between lines called arcs.

OK, that’s it for part 1 we’re going to explain a bit about what we’ve

introduced a bit more in part two. I hope you enjoyed today’s video and join us

for part so thank you. Don’t forget to subscribe if you haven’t already

bye for now.

A bit of a delay and only an introduction to this subject but we hope to add more information in part B of this video soon. Let us know what you would like to see by adding comments. Thanks for watching.

Thank you.