joker99
Ну скажем не совсем так. Вторая функция у тебя не правильна.
Во-первых когда ты
иначе говоря делаешь dequeue() элемент должен удалятся из массива и продвигать надо другой индех. И кроме того, почему сразу
.
Вот правильная имплементация dequeue():
Я держу переменные head (продвигается вправо когда элемент достаётся), tail (продвигается вправо когда елемент кладут в очередь) и count (для контроля над количеством элементов).
Код:
Object dequeue()
{
if ( count == 0 )
throw new Exception("Queue is empty");
Object result = array[head];
array[head] = null;
head = ++head % array.length;
count--;
return result;
}
Код enqueue() приводить не буду, посколько ты всё правильно написал. В моём случае двигался бы tail.