вариант исполнения. подскажите, все ли я правильно написал?
                  
                  
                  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 это следующий элемент после головы
Голова чего? Члена? Есть плоская память, цепочка последовательных ячеек или элементов, называемая массивом и указатель.
Обсуждают сегодня