 Hello everyone. So this video will kick off a series of smaller videos, I think, on actually implementing this linked list that we've been talking about so far. Okay? So as a reminder, what are we trying to accomplish here from a high level? We want to make our own list that implements the unordered list ADT. Okay? And so, you know, forget the jargon. What's a list? It's a collection of items, and you can add to it. You can append, you can remove things, you can search for things, all that good stuff. You can ask the length of the list. That's what we are going to do, but we are going to implement one. So we're going to implement that interface, the kind of interface you're used to working with with Python lists. But the code is going to be up to us this time. And we're going to use that linked list structure that we talked about conceptually. But now we're going to start making it concrete. So as I mentioned before, there are going to be two classes required for this. The first is the node class. Okay? Remember, the node is in a linked list, it is one link in that chain. And it's got two pieces of data in it, it's going to have two class instance variables. And we're going to write to these variables, we're going to read from them. Okay? You've got a data variable that is going to hold the piece of information you care about. Right? So if you do list sub zero gets Bob, the data is Bob. Okay? One piece of data in each node. That's it. Next is the reference to the subsequent node in the list. It is going to be a variable that contains a node. Okay? That's going to be the hardest part of this whole assignment. It's really understanding the fact that each node has a reference to the next node in it. But what does that reference look like? That reference is just going to be a variable whose value is a node. I'm kind of doing this backwards because my thing's floating. It's going to be a variable called next, whose value is a node class. So it's kind of a tricky thing to wrap your head around. The node is basically going to have another node referred to it. That's why it's really important that if you think of variables, not as like containers that things sit in, but instead think of variables as addresses of stuff in memory, it can kind of help you keep everything straight here. We'll look at the code in just a second. But this is the building block. Now, there will also be a linked list class. This class is going to be the class that has the methods in it that you are used to working with. Remove, search, append, length. Those are all going to be in this linked list class. So the linked list class itself is going to manipulate these nodes. Whenever a user says, hey, append Bob, it's going to make a new node class and fit it into the existing list somehow. We've got to implement this thing though. But once we're done, we'll be able to use it almost exactly like a Python list. The linked list is going to have a head, which is the head node in a list. It's going to have a tail. These are going to be class variables. A head variable, a tail variable, and a size variable. That's it. The list itself is going to be comprised of the links between the nodes. For some of the methods that you do, we will do something called traversal. Traversal is following the links down the list. Remember from our conceptual example, we had to remove Harry. Harry was the second item in the list. We had to start at the head of the list and go down to Harry. That's what we'll have to do in this class, and that is called traversal. I'll show you an example of that. That's the second big concept. If you understand node.next, what it's going to be, and traversal, walking the list, you'll be just fine. I'm going to switch over to some code. I'm going to get into talking about implementing these things one at a time in the following videos.