# What Is Link List Data Structure Describe With Example?

//

Larry Thompson

A link list is a type of data structure that organizes elements in a linear manner. It is composed of nodes, where each node contains both data and a reference to the next node in the sequence. In this article, we will dive deep into link lists and understand how they work, using examples to illustrate their functionality.

A link list, also known as a linked list, is a dynamic data structure that allows efficient insertion and deletion operations. Unlike arrays, which have a fixed size, link lists can grow or shrink as needed. Each node in the link list holds data and a pointer or reference to the next node.

There are different types of link lists based on their organization and functionality. Let’s take a look at three commonly used types:

1. Singly Linked List: In this type of link list, each node contains data and a reference to the next node. The last node points to null, indicating the end of the list.

2. Doubly Linked List: Similar to the singly linked list, each node in the doubly linked list has data and two references – one pointing to the next node and another pointing to the previous node.

3. Circular Linked List: In this type of link list, the last node points back to the first node instead of null, creating a circular structure.

Let’s consider an example of a singly linked list containing names:

“`html

``` class Node { constructor(data) { this.data = data; this.next = null; } }```

``` class LinkedList { constructor() { this.head = null; } insert(data) { const newNode = new Node(data); if (this.head === null) { this.head = newNode; } else { let current = this.head; while (current.next !== null) { current = current.next; } current.next = newNode; } } display() { let current = this.head; while (current !== null) { console.log(current.data); current = current.next; } } } const myList = new LinkedList(); myList.insert("John"); myList.insert("Jane"); myList.insert("Alice"); ```

```myList.display(); ```

“`

In the above example, we define a Node class representing each element in the link list. The LinkedList class contains methods to insert data and display the list. We create a new instance of LinkedList, insert three names, and then display the list.

Dynamic Size: Link lists can grow or shrink as elements are added or removed.
Efficient Insertion and Deletion: Insertion and deletion operations are more efficient compared to arrays.
Faster Operations: Retrieving an element at a specific index may be slower than arrays, but other operations like insertion and deletion are faster.