Junior — Middle
74
Можно ли использовать связанный список для реализации очереди?
Answer from AI
sobes.tech AI
Да, связанный список можно использовать для реализации очереди. Очередь — это структура данных с принципом FIFO (первым вошёл — первым вышел). Связанный список позволяет эффективно добавлять элементы в конец и удалять из начала, что соответствует операциям enqueue и dequeue в очереди.
Пример на Java:
class Node {
int data;
Node next;
Node(int data) { this.data = data; }
}
class Queue {
private Node head; // для удаления
private Node tail; // для добавления
public void enqueue(int value) {
Node newNode = new Node(value);
if (tail != null) {
tail.next = newNode;
}
tail = newNode;
if (head == null) {
head = tail;
}
}
public int dequeue() {
if (head == null) throw new RuntimeException("Queue is empty");
int val = head.data;
head = head.next;
if (head == null) tail = null;
return val;
}
}