вариант исполнения. подскажите, все ли я правильно написал?
class Node():
def __init(self, data, next_node):
self.data = data
self.next = next_node
class CircularBuffer():
def init__(self):
self.first = None
self.tail = None
def add(self, data):
node = Node(data, self.first)
if self.first is None:
self.first = node
self.tail = node
node.next_node = node
else:
self.tail.next = node
self.tail = node
def get(self):
data = self.first.data
self.tail.next = self.first
self.tail = self.first
self.first = self.first.next
return data
Может queue?
нет, именно циклический буфер FIFO. так в задании написано
Ну не знаю. Может тогда лучше queue?
что значит лучше queue? вы имеете в виду лучше написать очередь вместо циклического буфера?
https://docs.python.org/3/library/queue.html
Технически между буфером и очередью различие только в абстракции (читать как в тараканах в голове). Круговой буфер, также известный как круговая очередь или циркулярный буфер, представляет собой высокопроизводительную очередь FIFO https://upread.ru/blog/articles-it/universalnyj-kolcevoj-bufer
мне лишь нужно знать, правильно ли я понял\реализовал концепцию циклического буфера
Не особо вникал в твой код, но поверхностно глянув - нет
Вообще весь твой подход к решению. Что за first.next? Что это может значить в твоём понимании?
Если код не ясен - код говно
first это голова, а first.next это следующий элемент после головы
Голова чего? Члена? Есть плоская память, цепочка последовательных ячеек или элементов, называемая массивом и указатель.
Обсуждают сегодня