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

СД Практика 4

.pdf
Скачиваний:
0
Добавлен:
17.06.2025
Размер:
452.07 Кб
Скачать

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

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

Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)

СТЕКИ И ОЧЕРЕДИ Отчет по практической работе №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

Соседние файлы в предмете Структуры данных