Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше
Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике
2.1.1. Циклическая очередь
Циклическая
очередь является важной структурой данных. Физически это массив, но его индекс
используется особым способом. Рис. 2.1 иллюстрирует простой пример. На нем
показан массив из 16 байт с символами, из которых одни добавлены в «конец», а
другие - удалены из «начала». Обе позиции конца и начала перемещаются, и два
указателя s и е все время на них указывают.
На рис. (а) имеется 8 символов sid_east, а остаток буфера пуст. На рис.
(b) все 16 символов заняты, а е
указывает на конец буфера. На (с) первая буква s была удалена, а буква l в easily была вставлена. Заметьте, что
указатель е теперь размещается слева от s. На рис. (d)
две буквы id были удалены просто перемещением
указателя s; сами символы все еще находятся
в массиве, но они уже эффективно удалены из очереди. На рис. (е) два символа у_
были добавлены в очередь и указатель е переместился. На рис. (f) указатели показывают, что буфер
кончается на teas, а начинается на tman. Добавление новых символов в
циклическую очередь и перемещение указателей эквивалентно перемещению
содержимого очереди. Итак, нет необходимости что-то двигать или перемещать.
Рис. 2.1. Циклическая очередь.