Sobes.tech
Junior — Middle
75

Можно ли использовать связанный список для реализации очереди?

Ответ от нейросети

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;
    }
}