Hey there!
Welcome to ClearUrDoubt.com.
In this post, we will look at the Custom implementation of the Doubly LinkedList class in Java. Before proceeding further, please go through the below post for a better understanding of Doubly LinkedList.
Custom Implementation of Singly LinkedList class in Java
Simple Implementation of Doubly Linked List:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
package com.clearurdoubt.impl; public class MyDoublyLinkedList<T> { private class Node { Node prev; T value; Node next; } private Node head = null, tail = null; /** * Add Node to the List * @param val */ public void add(T val) { addLast(val); } Sing /** * Add Node in the beginning the List * @param val */ public void addFirst(T val) { Node newNode = new Node(); newNode.prev = null; newNode.value = val; newNode.next = head; head = newNode; if(tail == null) tail = newNode; } /** * Add Node at the end of the List * @param val */ public void addLast(T val) { if(head == null) { addFirst(val); return; } Node newNode = new Node(); newNode.prev = tail; newNode.value = val; newNode.next = null; tail.next = newNode; tail = newNode; } /** * Remove first node */ public void removeFirst() { if(head == null) return; else { head = head.next; } } /** * Remove last node */ public void removeLast() { if(tail == null) return; else { tail = tail.prev; } } /** * Print the elements */ @Override public String toString() { StringBuilder builder = new StringBuilder(); Node temp = head; do { builder.append( temp.value + " -> "); temp = temp.next; } while(temp.next != null); builder.append( temp.value ); return builder.toString(); } } |
Let’s see the demo of MyDoublyLinkedList class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package com.clearurdoubt.impl; /** * * @author Sai Gowtham Badvity * Demo of the usage of MyDoublyLinkedList * */ public class MyDoublyLinkedListDemo { public static void main(String[] args) { MyDoublyLinkedList<String> myList = new MyDoublyLinkedList<String>(); myList.add("ONE"); myList.add("TWO"); myList.add("THREE"); myList.addFirst("FOUR"); myList.addLast("FIVE"); System.out.println(); System.out.println("Elements in the list: " + myList); myList.removeFirst(); System.out.println(); System.out.println("After removing first node: " + myList); myList.removeLast(); System.out.println(); System.out.println("After removing last node: " + myList); myList.addFirst("SIX"); System.out.println(); System.out.println("After adding a new node in the beginning: " + myList); } } |
Output:
Happy Learning :).
Please leave a reply in case of any queries.