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

Семестр 2 / Алгоритмизация Лаба 5 язык С

.pdf
Скачиваний:
88
Добавлен:
12.04.2020
Размер:
187.36 Кб
Скачать

Алгоритмизация и программирование – лабораторная работа №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