Показать сообщение отдельно
Старый 02.05.2004, 20:30     # 36
joker99
Full Member
 
Аватар для joker99
 
Регистрация: 19.07.2003
Адрес: Israel
Сообщения: 924

joker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форуме
Цитата:
Сообщение от 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;
__________________
Столько дел, что и работой занятся некогда...
joker99 вне форума