Другие языки программирования и технологии

[Pascal] Создать очередь в виде кольцевого массива. Скопировать содержимое очереди в стек, который тоже в виде массива.

Что вообще есть кольцевой массив в Паскале? Не могу инф-цию о нем найти.
Имеется в виду именно кольцевой массив.
Это очередь сделанная из массива. Она может вместить в себя элементов не более, чем размер массива. Очередь знает, где у нее голова, где хвост, имя массива, на основе которого она сделана и его размер. Хвост и голова очереди - номера ячеек массива, между которыми находятся элементы очереди. В остальных ячейках массива - мусор.
Изначально очередь пуста, голова и хвост - вне диапазона (например, равны 0, если массив от 1 до 10 - такой размер будет предполагаться и далее) . При добавлении первого элемента элемент записывается в первую ячейку массива, хвост и голова становятся равными 1. Получилась очередь из одного элемента, остальные 9 элементов не определены (содержат мусор) . При добавлении еще одного элемента он кладется во вторую ячейку массива, голова сдвигается на единицу вправо: Хвост равен 1, голова равна 2, в этих двух ячейках - определенные значения. При последующих добавлениях будут заполняться последовательно остальные ячейки массива, вплоть до 10-й. При попытке добавить еще один элемент он будет добавлен в первую ячейку (при условии, что она свободна, об этом ниже) , голова станет равна 1. Собственно, это и есть закольцованность.
При выталкивании элемента из очереди берется элемент из ячейки с номером хвоста, хвост после этого сдвигается на единицу вправо, в сторону головы очереди, очередь сокращается. При попытке вытолкнуть элемент, когда хвост равен 10, вытолкнется этот 10-й элемент, хвост станет равным 1. При выталкивании последнего элемента голова и хвост снова должны стать равны числу вне диапазона (например, 0).
Следует следить, чтобы не проходили безнаказанными попытки вытолкнуть элемент из пустой очереди ()хвост и голова вне диапазона) и добавить элемент в полностью заполненную очередь (следующий за головой номер равен хвосту, с учетом закольцованности).
Azamat Zharymbetov
Azamat Zharymbetov
391
Лучший ответ
Я так себе представляю, что массивы тут на самом деле ни при чем. Имеется ввиду кольцевой список и список-стек.
Имеется в виду кольцевой список.

Похожие вопросы