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
Такой список позволяет эффективно управлять очередью без необходимости перераспределения памяти, как в массиве.