- •Лабораторна робота № 4 Структура даних черга
- •1. Мета роботи
- •2. Теоретичні відомості
- •3. Порядок виконання роботи
- •1. Мета роботи.
- •5. Завдання на лабораторну роботу
- •6. Вибір індивідуального завдання
- •8. Контрольні запитання
- •Постановка задачі
- •3. Динаміка вмісту черги(або деку)
- •Умова не виконується!
- •4. Алгоритм розв’язання задачі
- •5. Результати виконання програми
8. Контрольні запитання
Go[0] Go[1] Go[2] Go[3] Go[4] Go[5] Go[6] Go[7] |
1. На малюнку 1 зображений масив Go , початок черги Open і кінець черги Close, за допомогою яких задана черга My. Намалюйте схематичне зображення цієї черги. |
||||||||||
2. Перемалюйте малюнок 1 після виконання такої операції: Push (’W’); |
|||||||||||
Open
|
Close
|
||||||||||
3. Перемалюйте малюнок 1 після виконання такої операції: Pop (); |
|||||||||||
Мал.1. Реалізація черги My на базі масиву Go |
|||||||||||
4. Для заданої на малюнку 1 черги My напишіть функцію додавання в чергу елемента X (дотримуйтесь назв згідно з малюнком ). |
|||||||||||
5. В послідовності 8 2 1 4 8 5 3 парна цифра означає операцію Push, а непарна цифра - операцію Pop. Намалюйте динаміку вмісту черги під час виконання цих операцій над порожньою спочатку чергою.
|
|||||||||||
Приклад виконання
№ варіанта = [(2) + (111)] % 30 + 1=24
Постановка задачі
Змоделювати чергу або дек на базі статичного масиву згідно з завданням. Написати основні операції для роботи з чергою (push, pop, front, empty, full)або деком (push_left, push_right, pop_left, pop_right, front_left, front_right,empty, full) і продемонструвати правильність їх виконання. Для цього (якщо в завданні не вказано інший спосіб) в програмі на вході задати послідовність з К (К>10) різних цілих чисел (числа вводити з клавіатури). Всі додатні числа послідовно заносити в чергу (дек), кожне від’ємне число має вилучати з черги (деку) один елемент (при роботі з деком, парні числа працюють з правим кінцем деку, а непарні – з лівим). Виводити на екран динаміку вмісту черги (деку) під час обробки заданої послідовності. Вхідну послідовність чисел задати такою, щоб вона демонструвала роботу основних операцій та генерувала виникнення ситуацій "втрати значимості черги"(queueunderflow) і "переповнення черги" (queueoverflow) або "втрати значимості деку"(dequnderflow) і "переповнення деку" (deqoverflow).
Примітка: після реалізації черги або деку працювати з ними як з абстрактними типами даних, а не як з масивами.
24. Змоделювати дек (тобто додавати i вилучати елементи можна з обох кінців). Після обробки всієї заданої вхідної послідовності перевірити, чи є у деку три однакових числа, які йдуть підряд одне за одним.
