Алгоритмизация и программирование – лабораторная работа №4
Лабораторнаяработа№5 Стек.Очередь
Оценивание и сроки сдачи:
До 24.04 – 4 балла;
По 08.05 – 2 балла; позже лабораторная работа не оценивается!
Задание:
Для хранения набора целых чисел реализовать 4 варианта структур данных:
1.стек на базе массива;
2.стек на базе указателей (односвязный линейный список - ОЛС);
3.очередь на базе массива (в виде кругового буфера);
4.очередь на базе указателей (односвязный линейный список - ОЛС).
Требования:
Для массивов выделить изначально 5 ячеек (при нехватке памяти - выделять дополнительно в 2 раза больше).
Пустой ячейкой считать ячейку с нулевым значением, хотя на практике - это некорректно.
Наличие Главного меню со следующими функционалами:
1.Стек - массив
2.Стек - ОЛС
3.Очередь - массив
4.Очередь – ОЛС
5.Выход
Вкаждом пункте Главного меню организовать подменю:
1.Вставить
2.Удалить
3.Распечатать
4.Показать верхний
5.Очистить
6.Проверить, пусто ли
7.Выход из пункта
При выводе на консоль печатать значения, начиная с самого левого элемента и заканчивая самым правым ( даже если там пустые значения).
Ниже приведены примеры результата работы программы:
1
Алгоритмизация и программирование – лабораторная работа №4
Меню: |
|
|
|
|
|
|
|
|
|
Меню: |
|
|
|||
|
|
|
|
1. |
|
Стек - массив |
|
1. |
Стек - массив |
||||||
|
|
|
|
2. |
|
Стек - ОЛС |
|
|
|
2. |
Стек - ОЛС |
|
|||
|
|
|
3. |
|
Очередь - массив |
|
3. |
Очередь - |
массив |
||||||
|
|
|
4. |
|
Очередь – ОЛС |
4. |
Очередь – ОЛС |
||||||||
|
|
|
5. |
|
Выход |
|
|
|
|
5. |
Выход |
||||
пункт меню – 1 |
|
|
|
|
|
пункт меню – 2 |
|||||||||
|
|
1. Вставить {в конец} |
1. Вставить {в начало} |
||||||||||||
|
|
2. Удалить {из конца} |
2. Удалить {из начала} |
||||||||||||
|
|
3. Распечатать |
|
|
|
|
3. Распечатать |
||||||||
|
|
4. Показать верхний |
|
|
4. Показать верхний |
||||||||||
|
|
5. Очистить |
|
|
|
|
5. Очистить |
||||||||
|
|
6. Проверить, пусто ли |
6. Проверить, пусто ли |
||||||||||||
|
|
7. Выход из пункта |
|
|
7. Выход из пункта |
||||||||||
пункт подменю – 1 |
|
|
|
|
пункт подменю – 1 |
||||||||||
значение - 22 |
|
|
|
|
|
|
значение - 2 |
|
|
||||||
пункт подменю – 1 |
|
|
|
|
пункт подменю – 1 |
||||||||||
значение - 11 |
|
|
|
|
|
|
значение - 1 |
|
|
||||||
пункт подменю – 1 |
|
|
|
|
пункт подменю – 3 |
||||||||||
значение - 44 |
|
|
|
|
|
|
1 2 |
|
|
|
|||||
пункт подменю – 3 |
|
|
|
|
пункт подменю – 1 |
||||||||||
22 11 44 0 0 |
|
|
|
|
|
значение - 4 |
|
|
|||||||
пункт подменю – 2 |
|
|
|
|
пункт подменю – 3 |
||||||||||
пункт подменю – 2 |
|
|
|
|
4 1 2 |
|
|
|
|||||||
пункт подменю – 3 |
|
|
|
|
пункт подменю – 2 |
||||||||||
22 0 0 0 0 |
|
|
|
|
|
|
|
пункт подменю – 3 |
|||||||
пункт подменю – 1 |
|
|
|
|
1 2 |
|
|
|
|||||||
значение - 55 |
|
|
|
|
|
|
пункт подменю – 7 |
||||||||
пункт подменю – 3 |
|
|
|
|
|
|
|
|
|||||||
22 |
55 0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
||
пункт подменю – 4 |
|
|
|
|
|
|
|
|
|||||||
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
пункт подменю – 6 |
|
|
|
|
|
|
|
|
|||||||
не пусто |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
пункт подменю – 5 |
|
|
|
|
|
|
|
|
|||||||
пункт подменю – 3 |
|
|
|
|
|
|
|
|
|||||||
0 |
0 0 0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
||
пункт подменю – 6 |
|
|
|
|
|
|
|
|
|||||||
пусто |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
пункт подменю – 1 |
|
|
|
|
|
|
|
|
|||||||
значение - 8 |
|
|
|
|
|
|
|
|
|
|
|||||
пункт подменю – 1 |
|
|
|
|
|
|
|
|
|||||||
значение - 2 |
|
|
|
|
|
|
|
|
|
|
|||||
пункт подменю – 1 |
|
|
|
|
|
|
|
|
|||||||
значение - 4 |
|
|
|
|
|
|
|
|
|
|
|||||
пункт подменю – 1 |
|
|
|
|
|
|
|
|
|||||||
значение - 9 |
|
|
|
|
|
|
|
|
|
|
|||||
пункт подменю – 1 |
|
|
|
|
|
|
|
|
|||||||
значение - 2 |
|
|
|
|
|
|
|
|
|
|
|||||
пункт подменю – 1 |
|
|
|
|
|
|
|
|
|||||||
значение - 13 |
|
|
|
|
|
|
|
|
|
|
|||||
пункт подменю – 3 |
|
|
|
|
|
|
|
|
|||||||
8 |
2 |
4 |
9 |
2 |
13 |
0 |
0 |
0 |
0 0 |
|
|
|
|
||
пункт подменю – 2 |
|
|
|
|
|
|
|
|
|||||||
пункт подменю – 3 |
|
|
|
|
|
|
|
|
|||||||
8 |
2 |
4 |
9 |
2 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
||
пункт подменю – 7 |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2
Алгоритмизация и программирование – лабораторная работа №4
Меню:
1.Стек - массив
2.Стек - ОЛС
3.Очередь - массив
4.Очередь – ОЛС
5.Выход
пункт меню – 3
1.Вставить {в конец}
2.Удалить {из начала}
3.Распечатать
4.Показать верхний
5.Очистить
6.Проверить, пусто ли
7.Выход из пункта
пункт подменю – 1
значение - 3
пункт подменю – 1
значение - 1
пункт подменю – 1
значение - 4
пункт подменю – 3
3 1 4 0 0
пункт подменю – 2 пункт подменю – 3
0 1 4 0 0
пункт подменю – 1
значение - 5
пункт подменю – 3
0 1 4 5 0
пункт подменю – 4
1
пункт подменю – 6
не пусто
пункт подменю – 2
0 0 4 5 0
пункт подменю – 1
значение - 8
пункт подменю – 1
значение - 2
пункт подменю – 3
2 0 4 5 8
пункт подменю – 2 пункт подменю – 3
2 0 0 5 8
пункт подменю – 1
значение - 9
пункт подменю – 3
2 9 0 5 8
пункт подменю – 4
5
пункт подменю – 1
значение - 11
пункт подменю – 1
значение - 12
пункт подменю – 3
2 9 11 12 0 0 0 0 5 8
пункт подменю – 7
Меню:
1.Стек - массив
2.Стек - ОЛС
3.Очередь - массив
4.Очередь – ОЛС
5.Выход
пункт меню – 4
1.Вставить {в конец}
2.Удалить {из начала}
3.Распечатать
4.Показать верхний
5.Очистить
6.Проверить, пусто ли
7.Выход из пункта
пункт подменю – 1
значение - 7
пункт подменю – 1
значение - 3
пункт подменю – 3
7 3
пункт подменю – 1
значение - 4
пункт подменю – 3
7 3 4
пункт подменю – 2 пункт подменю – 3
3 4
пункт подменю – 2 пункт подменю – 3
4
пункт подменю – 1
значение - 1
пункт подменю – 3
4 1
пункт подменю – 7
3