JavaScript ES6/ES2015 Implementation of a LinkedList.
Definition
A LinkedList is a list of Node. A Node is the most basic building block for many Data Structures.
A Node does two things:
- Contain a Value
- Connect itself to other Nodes via an object reference pointer
In a LinkedList, all Nodes can only have one Child Node.
Implementation
Nodes
For our Node, we will use a simple JavaScript Object
Example
var node1 = { |
This node does not point to anything at the moment. Let’s create a second Node and have it point to the first Node:
var node2 = { |
LinkedList
A LinkedList is a class that encapsulated the Nodes. It will contain
- a
head
property that is a pointer to the first Node. - a
tail
property that is a pointer to the last Node. - a
count
property that keeps track of node count. - Add and Remove methods to manipulate the nodes in the list.
1) Base
For the LinkedList, we will use a class
and store the head Node and Tail Node as class property as well as a count variable that stores the number of Nodes.
class LinkedList { |
2) Add functions
We will now create two add
functions. A addFirst
to add at the start of the list and addLast
to add at the end of the list.
Here is the addLast
method:
addLast(data) { |
Here is the addFirst
method:
addFirst(data) { |
3) Remove functions
Likewise, we will create a removeFirst
and removeLast
functions.
Here is the removeFirst
method:
removeFirst(data) { |
Here is the removeLast
method:
removeLast(data) { |
And that’s it, our LinkedList is ready.
See it in action here.
Here is the full code