Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR3.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
733.18 Кб
Скачать

8. Контрольні запитання

5

3

9

7

1

8

Mas[0] Mas[1] Mas[2] Mas[3] Mas[4] Mas[5]

Verh

4

Мал.1. Реалізація стеку S1 на базі масиву Mas

1. На малюнку 1 зображений масив Mas і вершина стека Verh, за допомогою яких заданий стек S1. Намалюйте схематичне зображення цього стека.

2. Перемалюйте малюнок 1 після виконання такої операції:

Pop ();

3. Для заданого на малюнку 1 стека S1, напишіть функцію додавання в стек елемента Х (дотримуйтесь назв згідно з малюнком 1).

4. Напишіть умовний оператор, який вилучить зі стека S1 один елемент і виведе повідомлення ”ТАК”, якщо він є парним числом і повідомлення ”НІ” - якщо це не так.

5. В послідовності 4 2 7 3 8 2 1 6 кожна парна цифра визначає операцію рush , а кожна непарна цифра визначає операцію рop. Намалюйте динаміку вмісту стека під час виконання цих операцій над порожнім спочатку стеком.

Приклад виконання

  1. Постановка задачі

Змоделювати стек на базі статичного масиву згідно з завданням. Написати основні операції для роботи зі стеком (push, pop, top, empty, full) і продемонструвати правильність їх виконання. Для цього (якщо в завданні не вказано інший спосіб) в програмі на вході задати послідовність з К (К>10) різних цілих чисел (числа вводити з клавіатури). Всі додатні числа послідовно заносити в стек, а кожне від'ємне число має вилучати зі стекуодин елемент. Виводити на екран динаміку вмісту стека під час обробки заданої послідовності. Вхідну послідовність чисел задати такою, щоб вона демонструвала роботу основних операцій та генерувала виникнення ситуацій "втрати значимості стеку" (stackunderflow) та "переповнення стеку" (stackoverflow).

Зауваження: працювати зі стеком як з абстрактним типом даних (АТД), а не як з масивом.

1. Реалізувати за допомогою одного масиву з Nелементiв два стеки. Стеки повинні рости з кінців масиву назустріч один одному. На вході задати пари цiлих чисел (i,j), де i-це число 1 або 2, j – любе число. Перше число і кожної пари (i,j) вказує на номер стеку (1 або 2), з яким виконувати роботу. Якщо друге число j кожної пари (i,j) є додатнім (j>0), то воно додається в і – тий стек, якщо j<0, то з і-го стеку вилучається один елемент, j=0 – ігнорується. Після обробки всієї заданої вхідної послідовності переписати всі парні числа обох стеків в перший стек, а всі непарні – в другий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]