СДлб4
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра безопасности информационных систем (БИС)
СТЕКИ И ОЧЕРЕДИ
Отчет по практической работе №4
по дисциплине «Структуры данных»
Студент гр. 731-2
А.С. Батаев
Принял:
преподаватель КИБЭВС
Д.Р. Уразаев
Томск 2022
СОДЕРЖАНИЕ
1 |
Введение....................................................................................................................................... |
3 |
2 |
Ход работы ................................................................................................................................... |
4 |
Заключение ................................................................................................................................... |
10 |
2
1 Введение
Данная работа посвящена реализации стека и очереди с использованием динамических структур. Во время работы будет реализован односвязный список на языке программирования c#
Задание: Требуется реализовать стек и очередь и создать методы для добавления и удаления элементов, а также проверки длинны этих структур и проверки первого элемента структуры.
3
2 Ход работы
Весь код программы представлен в приложении А.
По заданию был реализован класс Node, который отвечает за инициализацию и переопределение стека (Рисунок 2.1).
Рисунок 2.1-Класс Node
Далее по заданию был реализован публичный класс Stack.
Была объявлена переменная head, эта переменная отвечает за хранение элемента начала стека. Так же была объявлена публичная переменная count, переменная count
служит для хранения размера стека. Переменные head и count представлены на рисунке 2.2.
Рисунок 2.2-Переменные head и count
Для возвращения размера стека был реализован метод Len. Метод Len
представлен на рисунке 2.3.
Рисунок 2.3-Метод Len
4
Для удаления первого элемента стека был реализован метод Pop. Если размер стека равен 0, то возвращается значение 0 и в консоль выводится сообщение, что стек не содержит элементов. После проверки на наличие элементов в переменную point
присваивается значение начала списка, после этого указатель на начало списка смещается. Метод возвращает удалѐнный элемент. Метод Pop представлен на рисунке
2.4.
Рисунок 2.4-Метод Pop
Метод Push нужен для добавления элемента в начало стека. Для этого метод принимает целочисленное значение. Далее это значение встаѐт в начало стека, размер стека увеличивается на единицу. Метод Push представлен на рисунке 2.5.
Рисунок 2.5-Метод Push
Метод Check возвращает элемент, который находится сверху стека. Метод
Check представлен на рисунке 2.6.
5
Рисунок 2.6-Метод Check
Для возвращения размера очереди был реализован метод Len представленный на рисунке 2.7.
Рисунок 2.7-Метод Len
Для удаления первого элемента стека был реализован метод Delete. Если размер стека равен 0, то возвращается значение 0 и в консоль выводится сообщение, что очередь не содержит элементов. После проверки на наличие элементов в переменную point присваивается значение начала списка, после этого указатель на начало списка смещается. Метод возвращает удалѐнный элемент. На рисунке 2.8 представлен метод
Delete.
Рисунок 2.8-Метод Delete
Метод Add нужен для добавления элемента в конец очереди. Для этого метод принимает целочисленное значение. Далее это значение встаѐт в конец очереди,
размер очереди увеличивается на единицу, последний добавленный элемент
принимает значение tail. На рисунке 2.9 представлен метод Add.
6
Рисунок 2.9-Метод Add
Метод Check возвращает элемент, который находится в начале очереди. На рисунке 2.10 представлен метод Check.
Рисунок 2.10-Метод Check
Метод Main находится в классе Program. Метод Main можно увидеть на рисунке
2.11-12.
7
Рисунок 2.11-Метод Main
8
Рисунок 2.12-Метод Main
9
Заключение
Во время лабораторной работы была проведена реализация стек и очереди.
Были реализованы четыре метода. Очередь и стек были реализованы с помощью односвязных списков. Были получены навыки работы с динамическими списками на базе языка программирования c#.
10