public class CircularLinkedList { private Node head; private int size = 0; public void add(T data) { Node newNode = new Node<>(data); if (head == null) { head = newNode; head.next = head; head.prev = head; } else { Node last = head.prev; last.next = newNode; newNode.prev = last; newNode.next = head; head.prev = newNode; } size++; } public void rotateOneStep(int steps) { if (head == null || steps <= 0) { return; } for (int i = 0; i < steps; i++) { head = head.prev; } } public T get(int index) { if (index < 0 || index >= size); Node current = head; for (int i = 0; i < index; i++) { current = current.next; } return current.data; } public void toArray(T[] array) { if (array.length < size) ; Node curr = head; for (int i = 0; i < size; i++) { array[i] = curr.data; curr = curr.next; } } public int size() { return size; } public static class Node { T data; Node next; Node prev; // ← burası eklendi public Node(T data) { this.data = data; } } }