iLLcheff

DoublyLinked

Jan 14th, 2023
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.07 KB | None | 0 0
  1. package com.telerikacademy.dsa;
  2.  
  3. import java.util.Iterator;
  4.  
  5. public class LinkedList<T> implements List<T> {
  6.     private Node head;
  7.     private Node tail;
  8.     private int size = 0;
  9.  
  10.     public LinkedList() {
  11. //        size = 0;
  12.  
  13.     }
  14.  
  15.     public LinkedList(Iterable<T> iterable) {
  16.         iterable.forEach(this::addLast);
  17.     }
  18.  
  19.     @Override
  20.     public void addFirst(T value) {
  21.         Node newNode = new Node(value);
  22.         if (size > 0) {
  23.             head.prev = newNode;
  24.             newNode.next = head;
  25.         } else {
  26.             newNode.next = null;
  27.             tail = newNode;
  28.         }
  29.         newNode.prev = null;
  30.         head = newNode;
  31.         size++;
  32.     }
  33.  
  34.     @Override
  35.     public void addLast(T value) {
  36.         Node newNode = new Node(value);
  37.         if (size > 0) {
  38.             tail.next = newNode;
  39.             newNode.prev = tail;
  40.         } else {
  41.             head = newNode;
  42.         }
  43.         tail = newNode;
  44.         size++;
  45.     }
  46.  
  47.     @Override
  48.     public void add(int index, T value) {
  49.         throw new UnsupportedOperationException();
  50.     }
  51.  
  52.     @Override
  53.     public T getFirst() {
  54.         return head.value;
  55.     }
  56.  
  57.     @Override
  58.     public T getLast() {
  59.         return tail.value;
  60.     }
  61.  
  62.     @Override
  63.     public T get(int index) {
  64.         throw new UnsupportedOperationException();
  65.     }
  66.  
  67.     @Override
  68.     public int indexOf(T value) {
  69.         throw new UnsupportedOperationException();
  70.     }
  71.  
  72.     @Override
  73.     public T removeFirst() {
  74.         throw new UnsupportedOperationException();
  75.     }
  76.  
  77.     @Override
  78.     public T removeLast() {
  79.         throw new UnsupportedOperationException();
  80.     }
  81.  
  82.     @Override
  83.     public int size() {
  84.         return size;
  85.     }
  86.  
  87.     @Override
  88.     public Iterator<T> iterator() {
  89.         throw new UnsupportedOperationException();
  90.     }
  91.  
  92.     private boolean isEmpty() {
  93.         return size == 0;
  94.     }
  95.  
  96.     private class Node {
  97.         T value;
  98.         Node prev;
  99.         Node next;
  100.  
  101.         Node(T value) {
  102.             this.value = value;
  103.         }
  104.     }
  105. }
  106.  
Advertisement
Add Comment
Please, Sign In to add comment