
СД Практика 4
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
СТЕКИ И ОЧЕРЕДИ Отчет по практической работе №4 по дисциплине «Структуры данных»
Студент гр. 7х3-х
_______ ххххххх
_______
Принял: Преподаватель КИБЭВС
_______ Уразаев Д.Р.
_______
Томск 2024
Задание
Реализовать стек и очередь, создать методы для добавления и удаления элементов, а также проверки длины этих структур, проверки первого элемента структуры.
2
|
Содержание |
|
1 Введение.............................................................................................................. |
4 |
|
2 ХОД РАБОТЫ.................................................................................................... |
5 |
|
2.1 |
Классы........................................................................................................ |
5 |
2.2 |
Методы для удаления элементов............................................................. |
6 |
2.3 |
Методы для добавления элементов......................................................... |
8 |
2.4 |
Методы для вывода длины..................................................................... |
10 |
2.5 |
Методы для вывода первого элемента.................................................. |
11 |
Заключение........................................................................................................... |
12 |
|
Приложение А...................................................................................................... |
13 |
3
1 Введение
Целью работы является реализация на базе классов стека и очереди, а также типовых функций работы с ними на языке программирования C#.
4

2 ХОД РАБОТЫ
2.1Классы
Вприложении А представлен листинг реализованной программы.
Был реализован класс Node, который отвечает за инициализацию и переопределение элементов, класс Stack, который отвечает за работу со стеками и класс Queue для работы с очередями. Классы представлены на рисунке 2.1.
Рисунок 2.1 – Классы
5

2.2 Методы для удаления элементов
Метод RemoveFromStack() удаляет из стека верхний элемент. С помощью метода CheckFirstinStack() определяется верхний элемент стека. Переменной point присваивается текущий верхний элемент стека. После этого голова стека обновляется на следующий элемент, а длина уменьшается на один. Метод возвращает удаленный элемент, реализация в программе представлена на рисунке 2.2.
Рисунок 2.2 – Метод RemoveFromStack()
Метод RemoveFromQueue() удаляет из очереди первый элемент. С
помощью метода CheckFirstinQueue() определяется первый элемент в очереди.
Переменной point присваивается текущий первый элемент очереди. После этого голова очереди обновляется на следующий элемент, а длина уменьшается на один. Метод возвращает удаленный элемент, реализация в программе представлена на рисунке 2.3.
6

Рисунок 2.3 – Метод RemoveFromQueue()
7

2.3 Методы для добавления элементов
Метод AddToStack() добавляет элементы в стек. Создается новый узел, в
котором будет храниться новый элемент. Переменной point присваивается ссылка на начальный узел, голова стека обновляется, чтобы указывать на только что созданный узел, увеличивается длина стека. Реализация метода представлена на рисунке 2.4.
Рисунок 2.4 – Метод AddToStack()
Метод AddToQueue() добавляет элементы в очередь. Создается новый узел, в котором будет храниться новый элемент. Переменной temp
присваивается текущий хвост очереди, а затем хвост очереди обновляется,
чтобы указывать на только что созданный узел. Осуществляется проверка очереди, если она пуста, то новый узел становится и головой, и хвостом очереди, если нет, то текущий хвост обновляется, чтобы указывать на новый узел, увеличивается длина очереди. Реализация метода представлена на рисунке 2.5.
8

Рисунок 2.5 – Метод AddToQueue()
9

2.4 Методы для вывода длины
Методы StackLength() и QueueLength() возвращают длину стека и очереди соответственно. Программная реализация представлена на рисунке 2.6.
Рисунок 2.6 – Методы для вывода длины
10