Форум сайта python.su
Создать класс, описывающий Буфер данных типа Fifo. Задать размер буфера. Добавить элемент. Если буфер заполнен применение данного метода возвращает первый элемент, иначе none. Затем извлечь элемент.
Если кто-то подскажет, буду очень благодарна
Офлайн
Если “подсказать” то обычно для FIFO уфера используют списки.
Вот собственно простой пример FIFO буфера, он пока безразмерный, и все что умеет это добавить элемент в конец и получить первый элемент. Теперь вам нужно добавить задание размера для буфера, а также изменить поведение для def add чтобы “Если буфер заполнен применение данного метода возвращает первый элемент, иначе none”.
# -*- coding: utf-8 -*- class FIFOBufer(object): # клас описывающий Буфер данных типа Fifo def __init__(self): self._buffer = list() def add(self, item): # добавляет item в конец буфера self._buffer.append(item) def get(self): # получить из буфера первый элемент, ечли буфер пустой вернет None if len(self._buffer) > 0: return self._buffer.pop(0) else: return None def __str__(self): # содержимое буфера для print return(str(self._buffer)) if __name__ == '__main__': test=FIFOBufer() print('current buffer is: ',test) print('1-st element:', test.get()) for i in range(3): print('add {}, to bufer'.format(i)) test.add(i) print('current buffer is: ',test) #print('current buffer is: ',test) for i in range(4): value = test.get() print('get 1-st element from bufer. 1-st element = {}'.format(value)) print('current buffer is: ',test)
[code python][/code]
Отредактировано PEHDOM (Апрель 10, 2017 11:35:12)
Офлайн
PEHDOMСпасибо, друг)
Если “подсказать” то обычно для FIFO уфера используют списки.Вот собственно простой пример FIFO буфера, он пока безразмерный, и все что умеет это добавить элемент в конец и получить первый элемент. Теперь вам нужно добавить задание размера для буфера, а также изменить поведение для def add чтобы “Если буфер заполнен применение данного метода возвращает первый элемент, иначе none”.
Офлайн