Другие языки программирования и технологии
[Pascal] Создать очередь в виде кольцевого массива. Скопировать содержимое очереди в стек, который тоже в виде массива.
Что вообще есть кольцевой массив в Паскале? Не могу инф-цию о нем найти.
Имеется в виду именно кольцевой массив.
Это очередь сделанная из массива. Она может вместить в себя элементов не более, чем размер массива. Очередь знает, где у нее голова, где хвост, имя массива, на основе которого она сделана и его размер. Хвост и голова очереди - номера ячеек массива, между которыми находятся элементы очереди. В остальных ячейках массива - мусор.
Изначально очередь пуста, голова и хвост - вне диапазона (например, равны 0, если массив от 1 до 10 - такой размер будет предполагаться и далее) . При добавлении первого элемента элемент записывается в первую ячейку массива, хвост и голова становятся равными 1. Получилась очередь из одного элемента, остальные 9 элементов не определены (содержат мусор) . При добавлении еще одного элемента он кладется во вторую ячейку массива, голова сдвигается на единицу вправо: Хвост равен 1, голова равна 2, в этих двух ячейках - определенные значения. При последующих добавлениях будут заполняться последовательно остальные ячейки массива, вплоть до 10-й. При попытке добавить еще один элемент он будет добавлен в первую ячейку (при условии, что она свободна, об этом ниже) , голова станет равна 1. Собственно, это и есть закольцованность.
При выталкивании элемента из очереди берется элемент из ячейки с номером хвоста, хвост после этого сдвигается на единицу вправо, в сторону головы очереди, очередь сокращается. При попытке вытолкнуть элемент, когда хвост равен 10, вытолкнется этот 10-й элемент, хвост станет равным 1. При выталкивании последнего элемента голова и хвост снова должны стать равны числу вне диапазона (например, 0).
Следует следить, чтобы не проходили безнаказанными попытки вытолкнуть элемент из пустой очереди ()хвост и голова вне диапазона) и добавить элемент в полностью заполненную очередь (следующий за головой номер равен хвосту, с учетом закольцованности).
Это очередь сделанная из массива. Она может вместить в себя элементов не более, чем размер массива. Очередь знает, где у нее голова, где хвост, имя массива, на основе которого она сделана и его размер. Хвост и голова очереди - номера ячеек массива, между которыми находятся элементы очереди. В остальных ячейках массива - мусор.
Изначально очередь пуста, голова и хвост - вне диапазона (например, равны 0, если массив от 1 до 10 - такой размер будет предполагаться и далее) . При добавлении первого элемента элемент записывается в первую ячейку массива, хвост и голова становятся равными 1. Получилась очередь из одного элемента, остальные 9 элементов не определены (содержат мусор) . При добавлении еще одного элемента он кладется во вторую ячейку массива, голова сдвигается на единицу вправо: Хвост равен 1, голова равна 2, в этих двух ячейках - определенные значения. При последующих добавлениях будут заполняться последовательно остальные ячейки массива, вплоть до 10-й. При попытке добавить еще один элемент он будет добавлен в первую ячейку (при условии, что она свободна, об этом ниже) , голова станет равна 1. Собственно, это и есть закольцованность.
При выталкивании элемента из очереди берется элемент из ячейки с номером хвоста, хвост после этого сдвигается на единицу вправо, в сторону головы очереди, очередь сокращается. При попытке вытолкнуть элемент, когда хвост равен 10, вытолкнется этот 10-й элемент, хвост станет равным 1. При выталкивании последнего элемента голова и хвост снова должны стать равны числу вне диапазона (например, 0).
Следует следить, чтобы не проходили безнаказанными попытки вытолкнуть элемент из пустой очереди ()хвост и голова вне диапазона) и добавить элемент в полностью заполненную очередь (следующий за головой номер равен хвосту, с учетом закольцованности).
Я так себе представляю, что массивы тут на самом деле ни при чем. Имеется ввиду кольцевой список и список-стек.
Имеется в виду кольцевой список.
Похожие вопросы
- Двухмерные массивы(может быть есть добрые люди которые помогут решить)
- Дан линейный массив чисел N. N вводит пользователь. Вывести все простые числа массива.
- Плиз помогите!!! В массиве А размерностью nxm Найти сумму и количество всех элементов массива.
- Заполнить массив против часовой стрелки начиная с нижнего правого угла размер массива N*N и допустить возможность измене
- задача pascal. представить число в виде всех возможных сумм.
- Pascal. Дан натуральный отрезок чисел [A,B]. Найти те числа этого отрезка, которые являются степенью двойки.
- №1.Как вычислить произведение элементов массива(1..5)В Паскале=)))№2.Найти наименьший элемент в массиве!Тоже в Паскале)
- Объявление массива С++. С клавиатуры вводится число n, потом надо задать массив nxn. Как это сделать?
- В массиве целых чисел вывести те, у которых все цифры различны. паскаль
- Определить число k, которое отсутствует в неупорядоченном массиве чисел (0, 1,...k-1,k+1,...n) за один цикл