Untitled
unknown
plain_text
a month ago
2.2 kB
1
Indexable
Never
import java.util.Optional; public class DoublyLinkedListExample { public static void main(String[] args) { DoublyLinkedList list = new DoublyLinkedList(); // Добавление элементов в список list.add("Элемент 1"); list.add("Элемент 2"); list.add("Элемент 3"); // Вывод элементов списка list.printAllElements(); // Получение элемента по индексу Optional<String> element = list.get(1); if (element.isPresent()) { System.out.println("Элемент с индексом 1: " + element.get()); } else { System.out.println("Элемент не найден."); } } } class DoublyLinkedList { private Node head; private int size; public DoublyLinkedList() { head = new Node("Голова"); head.next = head; head.prev = head; size = 0; } public void add(String data) { Node newNode = new Node(data); if (size == 0) { newNode.next = head; newNode.prev = head; head.next = newNode; head.prev = newNode; } else { Node lastNode = head.prev; lastNode.next = newNode; newNode.prev = lastNode; newNode.next = head; head.prev = newNode; } size++; } public Optional<String> get(int index) { if (index < 0 || index >= size) { return Optional.empty(); } Node current = head.next; for (int i = 0; i < index; i++) { current = current.next; } return Optional.of(current.data); } public void printAllElements() { Node current = head.next; for (int i = 0; i < size; i++) { System.out.println(current.data); current = current.next; } } private class Node { String data; Node prev; Node next; Node(String data) { this.data = data; } } }