Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

САОД / САОД1 / Лабораторная работа 3

.doc
Скачиваний:
13
Добавлен:
26.04.2015
Размер:
39.94 Кб
Скачать

Лабораторная работа № 3

«Стеки, очереди, деки»

Тема Программная реализация структур данных: очереди, стека и дисциплин обслуживания очередей: циклической очереди, очередей с абсолютным и относительным приоритетом

Цель работы

  1. Изучить структуры данных: стек, очередь и дек.

  2. Познакомиться с понятием обратная польская запись арифметического выражения;

научиться выполнять преобразование арифметического выражения в обратную польскую запись.

3. Изучить дисциплины обслуживания очередей.

Методические указания

Перед выполнением индивидуального задания изучить

  1. структуры данных стек, очередь, дек, способы представления этих структур в памяти ЭВМ и операции, которые определены для каждой структуры;

  2. дисциплины обслуживания очередей;

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

При выполнении индивидуального задания придерживаться следующей последовательности действий:

  1. изучить словесную постановку задачи;

  2. разработать программу, решающую поставленную задачу;

  3. отладить и оттестировать программу;

  4. написать и представить к защите отчет по работе.

Содержание отчета

  1. Титульный лист.

  2. Словесная постановка задачи.

  3. Алгоритм решения задачи в текстуальном виде.

  4. Контрольный тест.

  5. Листинг программы.

  6. Ответы на контрольные вопросы по согласованию с преподавателем.

Контрольные вопросы

  1. Какой способ представления данных называется последовательным?

  2. Какой способ представления данных называется связным?

  3. Какова особенность структуры данных «стек»? Какие способы хранения стека вы знаете?

  4. Какие операции определены для стека?

  5. Какова особенность структуры данных «очередь»? Какие способы хранения очереди вы знаете?

  6. Какие операции определены для очереди?

  7. Какова особенность структуры данных «дек»? Какие способы хранения дека вы знаете? Какие операции определены для дека?

  8. Что такое инфиксная запись операций? Что такое префиксная запись?

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

  10. Покажите процесс преобразования арифметической записи 1+2/(3*(4+5)-6) в польскую, составив таблицу, подобную приведенной в разделе 2.2.3.

  11. Что такое критический ресурс? Что такое дисциплина распределения ресурсов?

  12. Перечислите базовые дисциплины распределения ресурсов.

Варианты индивидуальных заданий

  1. Моделирование простой очереди с помощью двух стеков. Реализовать следующие операции в очереди:

    1. проверка очереди на пустоту;

    2. добавление элемента;

    3. удаление элемента.

  1. Моделирование системы с дисциплиной обслуживания с абсолютным приоритетом. Система содержит 4 очереди с 4 – мя запросами в каждой, использующих один и тот же ресурс. Квант времени Тк ресурса равен 10. Приоритет отдается коротким запросам.

  1. Моделирование системы с дисциплиной обслуживания с относительным приоритетом. Система содержит 5 очередей с 3 – мя запросами в каждой, использующих один и тот же ресурс. Квант времени Тк ресурса равен 5. Приоритет отдается коротким запросам.

  1. Моделирование циклической очереди. Квант времени Тк ресурса равен 15, число запросов в очереди - 10 с длительностью 30, 50, 5, 10, 15, 25.

  1. Реализация стека выражений:

    1. арифметическое выражение вводится;

    2. преобразовать ПОЛИЗ;

    3. вычислить ПОЛИЗ с помощью стека.

  1. Реализация простой очереди двумя способами: последовательным (хранение в массиве) и связным (хранение в списке).

  1. Реализация стека двумя способами: последовательным (хранение в массиве) и связным (хранение в списке).

  1. Реализация дека двумя способами: последовательным (хранение в массиве) и связным (хранение в списке).

  1. С помощью стека реализовать проверку правильности скобочной структуры: (), [], {}.

Указание. Рассмотреть последовательности открывающих и закрывающих, круглых, фигурных и квадратных скобок (), [], {}.Среди всех таких последовательностей выделить правильные – те, которые могут быть получены по таким правилам:

    1. пустая последовательность правильна (например, последовательность A -[], она правильна);

    2. если А и В правильны, то и АВ правильны (например, последовательность B – {}, тогда последовательность AB - []{}, она правильна);

    3. если А правильна, то [A], {A} и (А) правильны (например, последовательность [A] - [[]], она правильна).

Например, последовательности (),{{}}, [[]], [()[]] правильны, а последовательности ][ и ]&&& - нет.

  1. Напечатать в порядке возрастания 11 натуральных чисел, в разложение которых на простые множители входят только числа 2,3,5.

Указание. Использовать три очереди, в которых будут храниться элементы, кратные 2,3,5.

  1. Реализовать с помощью одного массива два стека, суммарное количество элементов в которых ограничено длиной массива; все действия со стеками должны выполняться за время, ограниченное константой, не зависящей от длины стеков.

  1. Известно, что ориентированный граф связан, т.е. из любой вершины можно пройти в любую по ребрам. Кроме того, из каждой вершины выходит столько же ребер, сколько входит. Доказать, что существует замкнутый цикл, проходящий по каждому ребру ровно один раз. Составить алгоритм отыскания данного цикла.