Sobes.tech
Junior — Middle
70

Можешь привести пример задачи, использующей односвязный список?

Answer from AI

sobes.tech AI

Односвязный список — структура данных, где каждый элемент содержит данные и ссылку на следующий элемент.

Пример задачи, где удобно использовать односвязный список — реализация очереди с динамическим размером, когда нужно часто добавлять элементы в конец и удалять из начала.

Пример на Python:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedListQueue:
    def __init__(self):
        self.head = None
        self.tail = None

    def enqueue(self, data):
        new_node = Node(data)
        if self.tail:
            self.tail.next = new_node
        self.tail = new_node
        if not self.head:
            self.head = new_node

    def dequeue(self):
        if not self.head:
            return None
        data = self.head.data
        self.head = self.head.next
        if not self.head:
            self.tail = None
        return data

# Использование:
queue = LinkedListQueue()
queue.enqueue(1)
queue.enqueue(2)
print(queue.dequeue())  # 1
print(queue.dequeue())  # 2

Такой список позволяет эффективно управлять очередью без необходимости перераспределения памяти, как в массиве.