Untitled
unknown
plain_text
7 months ago
2.1 kB
3
Indexable
Never
import java.util.NoSuchElementException; public class HandMadeLinkedList<T> { class Node<E> { public E data; public Node<E> next; public Node<E> prev; public Node(Node<E> prev, E data, Node<E> next) { this.data = data; this.next = next; this.prev = prev; } } /** * Указатель на первый элемент списка. Он же first */ private Node<T> head; /** * Указатель на последний элемент списка. Он же last */ private Node<T> tail; private int size = 0; public void addFirst(T element) { final Node<T> oldHead = head; final Node<T> newNode = new Node<>(null, element, oldHead); head = newNode; if (oldHead == null) tail = newNode; else oldHead.prev = newNode; size++; } public T getFirst() { final Node<T> curHead = head; if (curHead == null) throw new NoSuchElementException(); return head.data; } public void addLast(T element) { // Реализуйте метод final Node<T> oldTail = tail; final Node<T> newNode = new Node<>(oldTail, element, null); tail = newNode; size++; } public T getLast() { // Реализуйте метод final Node<T> curTail = tail; if (curTail == null) throw new NoSuchElementException(); return tail.data; } public int size() { return this.size; } public static void main(String[] args) { HandMadeLinkedList<Integer> integers = new HandMadeLinkedList<>(); integers.addFirst(1); integers.addFirst(2); integers.addFirst(3); integers.addLast(4); integers.addLast(5); integers.addFirst(1); System.out.println(integers.getFirst()); System.out.println(integers.size()); System.out.println(integers.getLast()); System.out.println(integers.size()); } }p