Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНИК-Pascal.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
499.71 Кб
Скачать

Задание

  1. Приведите пример очереди.

  2. Объясните, что означает понятие максимальная длина очереди.

  3. Какие основные действия проводятся с очередью?

  4. Расскажите, в каком случае нельзя произвести действие "Поместить элемент в очередь".

1.4.3 Стек

Представьте себе, что вы пошли на рынок за покупками. Делая покупки, вы складываете их в сумку. Вернувшись домой, вы начинаете выкладывать покупки из сумки. Что вы вынете раньше? Конечно, то, что было положено в сумку последним. Для того, что бы составить пирамидку, мы поочередно надеваем на ось колечки (см. рис.1.15.). После того как мы сложили пирамидку, что бы достать первое колечко придется снять все колечки, которые находящиеся над ним. При этом порядок снятия колечек будет обратным, то есть сначала снимается последней колечко, затем - предпоследнее и так до тех пор, пока не снимем первое. В этих двух примерах, по аналогии с очередью, можно сказать, что мы имеем дело с принципом «Первый пришел, последним ушел!» или на английском языке: «First input, Last output» (FILO) или «Последним пришел, первым ушел!» или на английском языке: «Last input, First output» (LIFO). Организацию хранения и обработки линейных списков в котором применяется данный принцип называют стеком.

Стек – частный случай линейного списка, для которого разрешено добавлять или убирать элементы только с одного конца списка, который называется вершиной (головой) стека.

рис.1.15

При удалении элемента из вершины стека мощность (глубина) стека уменьшается на единицу, но сдвижки элементов не происходит.

Основные действия над стеком

Для того чтобы посмотреть, какие действия мы можем проводить с данными, которые организованы в стек, введем несколько определений.

Максимальная глубина стека – максимально возможное количество элементов, которое может находиться в стеке одновременно.

Глубина стека характеризует количество элементов, находящихся в стеке в данный конкретный момент.

Пустой стек - стек, в котором нет элементов, а глубина стека равна нулю.

Первое действие. Поместить элемент в стек:

Для того чтобы поместить элемент в стек, необходимо проверить, есть ли в нем место, то есть меньше ли глубина стека максимальной глубине. Если глубина стека меньше максимальной глубины, то помещаем элемент в стек, и увеличиваем значение глубины стека на единицу, иначе - ничего не делаем (если глубина стека равна максимальной глубине, то поместить в стек новый элемент не представляется возможным).

Взять элемент из стека:

Для того чтобы взять элемент из стека, необходимо проверить, есть ли элементы в стеке. Если стек не пуст, то: а) удаляем последний элемент из стека, б) уменьшаем на единицу значение глубины стека, иначе - ничего не делаем.

Стек (Stek) с английского языка переводится как кучка, вязанка. Существует даже единица измерения стек. Один стек равен 3,04 м3

Линейный список, который объединяет в себе свойства очереди и стека, называется ДЕК.

Дек - линейный список, в котором все добавления и удаления элементов делаются на обоих концах списка.

Рис.1.16

Дек называют очередью с двумя концами или двухсторонней очередью.