Book Image

Learning JavaScript Data Structures and Algorithms

By : Loiane Avancini
Book Image

Learning JavaScript Data Structures and Algorithms

By: Loiane Avancini

Overview of this book

Table of Contents (18 chapters)

Doubly linked lists


There are some different types of linked lists. In this section, we are going to cover the doubly linked list. The difference between a doubly linked list and a normal linked list is that in the linked list we make the link from one node to the next one only. In the doubly linked list, we have a double link: one for the next element and one for the previous element, as shown in the following diagram:

Let's get started with the changes that are needed to implement the DoublyLinkedList class:

function DoublyLinkedList() {

    var Node = function(element){

        this.element = element;
        this.next = null;
        this.prev = null; //NEW
    };

    var length = 0;
    var head = null;
    var tail = null; //NEW

    //methods here
}

As we can see in this code, the differences between the LinkedList class and the DoublyLinkedList class are marked by NEW. Inside the Node class we have the prev attribute (a new pointer) and inside the DoublyLinkedList class we also...