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

Практика 4 - Стек, очередь - СФ

.pdf
Скачиваний:
4
Добавлен:
06.11.2022
Размер:
336.95 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕЕНЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра комплексной информационной безопасности электронно-

вычислительных систем (КИБЭВС)

Стек, очередь Отчет по практической работе №4

По дисциплине «Структуры данных»

Студент гр. ххххх

________ ххххх

________

Принял Преподаватель КИБЭВС

________ ххххх

________

Томск 2022

Задание

Продемонстрировать типовые функции работы со стеком:

1)удалить из стека - возвращать удаляемый элемент возвращается по результату работы метода;

2)добавить в стек;

3)число элементов стека;

4)взять верхний элемент стека без удаления.

Очередь:

1)число элементов в очереди;

2)удалить из очереди;

3)добавить в очередь;

4)получить первый элемент из очереди без удаления из нее.

2

Содержание

1 Введение …………………………………………………………………………... 4

2 Ход работы ………………………………………………………………………... 5

2.1Реализация стека …………………………………………………………. 5

2.2Реализация очереди ……………………………………………………… 7 3 Заключение ……………………………………………………………………… 10

Приложение А ………………………………………………………………..…… 11

3

1 Введение

Цель работы заключается в том, чтобы овладеть навыками работы с метода стека и очереди, а также их реализации на языке программирования C#.

4

2 Ход работы

Стек — это структура данных, представляющая собой список элементов,

организованных по принципу «последним пришёл — первым вышел».

Очередь – это последовательный список переменной длины, в котором включение элементов производится на одном конце, а исключение на другом, то есть по принципу «первым пришел - первым ушел».

2.1 Реализация стека

Для реализации стека был использован метод NodeStack<T>, а также добавлены функции удаления элемента, добавления элемента, функция нахождения длины стека, а также вывода верхнего элемента без его удаления.

Для добавления элементов в стек, использовался метод Push. Реализация добавления элементов представлена на рисунке 2.1. Последний элемент передает ссылку на добавленный, и добавленный элемент становится последним.

Рисунок 2.1 - метод Push для стека

Для удаления элемента был написан метод Pop (рисунок 2.2).

Предпоследний элемент становится последним. Последний элемент присваивается во временную переменную и выводится на консоль.

5

Рисунок 2.2 - метод Pop для стека

При выполении метода Peek находится верхний элемент стека и выводится на консоль, элемент не удаляется (рисунок 2.3).

Рисунок 2.3 - Метод Peek для стека

При выводе дины стека выполняется метод CountStack, который возвращает счетчик элементов стека (рисунок 2.4).

Рисунок 2.4 - Счетчик элементов стека

6

Работа программы представлена на рисунке 2.5.

Рисунок 2.5 -Работа программы стека

2.2 Реализация очереди

Для реализации очереди был создан класс Queue, были реализованы методы добавления элемента в очередь, удаления первого элемента в очереди,

нахождение первого и вывод длины очереди.

При добавлнеии последний элемент присваивается в новую переменную, а tail присваивается добавленный элемент, и из новая переменная создает ссылку на tail. На рисунке 2.6 представлен код метода.

7

Рисунок 2.6 - Добавление в очередь

Когда удаляется первый элемент, то первому элементу присваивается ссылка на второй элемент (рисунок 2.7).

Рисунок 2.7 - Удаление первого элемента очереди

При выводе первго элемента очереди метод возвращает ссылку на элемент.

На рисунке 2.8 представлен код программы.

Рисунок 2.8 - Вывод первого элемента очереди

8

При выводе длины очереди метод возвращет счетчик элементов очереди

(рисунок 2.9).

Рисунок 2.9 - Количество элементов очереди

Работа программы очереди представлена на рисунке 2.10.

Рисунок 2.10 - Работа программы очереди

Листинг программы представлен в приложениии А.

9

3Заключение

Впроцессе выполнения программы были получены навыки работы со стеком и очередью, разработаны методы для добавления, удаления, нахождения верхнего элемента списка и очереди, а также нахождения их длины.

10