Меня интересуют следующий вопросы:
1. Что происходит, когда очередь имеет вместительность — 50 элементов, запонено — 25. И пользователь пытается прочитать 30 элементов?
a) Должно проихойти исключение
b) должны показать пустое значение
c) должны показать последнее зполненное значение
2. Что происходить, когда очередь переполняется? Т.е. у нас вместительность 50 элементов, а нас просят записать 51 элемент
a) происходит исключение
b) начинаем запись по второму кругу
В общем-то, меня интересуют два выше написанных вопроса.
Здравствуйте, DioNNiS, Вы писали:
DNN>Здравствуйте!
DNN>Что такое циклическая очередь?
DNN>Немного я нашел тут: DNN>http://rsdn.ru/forum/alg/2935333.aspx
DNN>http://en.wikipedia.org/wiki/Circular_buffer
DNN>Меня интересуют следующий вопросы: DNN>1. Что происходит, когда очередь имеет вместительность — 50 элементов, запонено — 25. И пользователь пытается прочитать 30 элементов?
вернуть 25 элементов и указать что возвращено именно 25 элементов из запрошенных 30, опционально можете делать интерфейс "все или ничего", с исключением
DNN>2. Что происходить, когда очередь переполняется? Т.е. у нас вместительность 50 элементов, а нас просят записать 51 элемент DNN>a) происходит исключение DNN>b) начинаем запись по второму кругу
с) заблокироваться в ожидании читателя
DNN>В общем-то, меня интересуют два выше написанных вопроса.
DNN>Заранее спасибо!
вообще, циклическая очередь тесно связано с задачей producer-consumer, и обработка исключительных ситуаций зависит от общей задачи
Здравствуйте, DioNNiS, Вы писали:
DNN>Хм... я аот и не знаю, как по правилам циклической очереди? Потому, как задача стоит просто: "реализовать класс циклической очереди".
Если это тестовое задание -- реализуйте любое поведение, задокументируйте и укажите, что в коде нужно будет менять изменения реакции на переполнение или нехватку элементов.
Если это рабочий проект -- просите уточнить интерфейс.
Здравствуйте, TheBeard, Вы писали:
TB>Если это тестовое задание -- реализуйте любое поведение, задокументируйте и укажите, что в коде нужно будет менять изменения реакции на переполнение или нехватку элементов.
TB>Если это рабочий проект -- просите уточнить интерфейс.