Цитата:
Сообщение от Programmer
2 All
Осталась 3-я задача (см. шапку).
|
Ну так это просто:
берётся две интовые переменные (first_elem,first_empty). Одна указывает на первое занятое место в векторе, вторая на первое незанятое. Вначале обе указывают на 0. Также нужен флаг который говорит очередь пустая или полная, так как эти состояния рваны, с точки зрения указателей(first_elem == first_empty).
Добавление элемента:
Код:
if (queue_full == false)
{
arr[first_empty] = elem;
first_empty=(first_empty+1) % arr_size.;
if (first_empty == first_elem)
queue_full = true;
}
else
return QUEUE_FULL_ERROR
Доставание элемента:
Код:
if (queue_full == true || first_empty != first_elem)
{
elem = arr[first_elem];
first_elem=(first_elem+1) % arr_size.;
queue_full = false;
}
else
return QUEUE_EMPTY_ERROR
Вначале:
first_elem = first_empty = 0;
queue_full = false;