Singly linked list: Items can navigate in forward direction only.
Linked list operations
-
Insertion: Adds an element at the beginning of the list.
Deletion: Deletes an element at the beginning of the list.
Display: Displays the complete list.
Search: Searches an element using the given key.
Delete: Deletes an element using the given key.
Linked list examples
package com.w3schools; class Node<T> implements Comparable<T> { private T value; private Node<T> nextRef; public T getValue() { return value; } public void setValue(T value) { this.value = value; } public Node<T> getNextRef() { return nextRef; } public void setNextRef(Node<T> ref) { this.nextRef = ref; } @Override public int compareTo(T arg) { if(arg == this.value){ return 0; } else { return 1; } } } public class Test<T> { private Node<T> head; private Node<T> tail; public void add(T element){ Node<T> nd = new Node<T>(); nd.setValue(element); System.out.println("Adding element: "+element); if(head == null){ head = nd; tail = nd; } else { tail.setNextRef(nd); tail = nd; } } public void addAfter(T element, T after){ Node<T> tmp = head; Node<T> refNode = null; System.out.println("Traversing nodes"); while(true){ if(tmp == null){ break; } if(tmp.compareTo(after) == 0){ refNode = tmp; break; } tmp = tmp.getNextRef(); } if(refNode != null){ Node<T> nd = new Node<T>(); nd.setValue(element); nd.setNextRef(tmp.getNextRef()); if(tmp == tail){ tail = nd; } tmp.setNextRef(nd); } else { System.out.println("Element not found."); } } public void deleteFront(){ if(head == null){ System.out.println("Underflow state"); } Node<T> tmp = head; head = tmp.getNextRef(); if(head == null){ tail = null; } System.out.println("Deleted element: "+tmp.getValue()); } public void deleteAfter(T after){ Node<T> tmp = head; Node<T> refNode = null; System.out.println("Traversing nodes."); while(true){ if(tmp == null){ break; } if(tmp.compareTo(after) == 0){ refNode = tmp; break; } tmp = tmp.getNextRef(); } if(refNode != null){ tmp = refNode.getNextRef(); refNode.setNextRef(tmp.getNextRef()); if(refNode.getNextRef() == null){ tail = refNode; } System.out.println("Deleted element: "+tmp.getValue()); } else { System.out.println("Element not found."); } } public void traverse(){ Node<T> tmp = head; while(true){ if(tmp == null){ break; } System.out.println(tmp.getValue()); tmp = tmp.getNextRef(); } } public static void main(String args[]){ try { Test<Integer> linkedlist = new Test<Integer>(); linkedlist.add(13); linkedlist.add(23); linkedlist.add(4); linkedlist.addAfter(6, 13); linkedlist.deleteFront(); linkedlist.deleteAfter(23); System.out.println("Traversing all nodes."); linkedlist.traverse(); } catch (Exception e) { e.printStackTrace(); } } } |
Linked list examples
Adding element: 13 Adding element: 23 Adding element: 4 Traversing nodes Deleted element: 13 Traversing nodes. Deleted element: 4 Traversing all nodes. 6 23 |