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

2Ход работы
Push: Добавляет элемент на верхушку стека. Если стек был пуст, новый элемент становится и верхом, и основанием стека (рис.1)
Рисунок 1 — push
Pop: Удаляет и возвращает верхний элемент стека. Если стек пуст, вызывает ошибку. При удалении верхнего элемента обновляется указатель на верх (рис. 2)
Рисунок 2 — pop
Peek: Возвращает верхний элемент стека без его удаления. Если стек пуст, вызывает ошибку (рис. 3)
5

Рисунок 3 — peek
Count: Возвращает количество элементов в стеке. Считывает их, проходя по всем элементам, начиная с верхнего (рис. 4)
Рисунок 4 — count
PrintStack: Выводит все элементы стека в порядке от верхнего к нижнему. Позволяет визуализировать текущие элементы стека (рис. 5)
Рисунок 5 — printstack
6

Enqueue: Добавляет элемент в конец очереди. Если очередь была пустой, новый элемент становится и первым, и последним (рис. 6)
Рисунок 6 — enqueue
Dequeue: Удаляет и возвращает первый элемент очереди. Если очередь пуста, вызывает ошибку. Обновляет указатель на первый элемент после удаления (рис. 7)
Рисунок 7 - Dequeue
PeekFront: Возвращает первый элемент очереди без его удаления. Если очередь пуста, вызывает ошибку (рис. 8)
Рисунок 8 — peekfront
7

Count: Возвращает количество элементов в очереди. Считывает их, проходя от первого до последнего элемента (рис. 9)
Рисунок 9 — count
PrintQueue: Выводит все элементы очереди в порядке от первого к последнему. Позволяет вывести текущие элементы очереди (рис. 10)
Рисунок 10 — printqueue
8
Заключение
В ходе работы были успешно реализованы функциональные классы для стека и очереди. Мы продемонстрировали типовые операции, включая добавление и удаление элементов, а также получение значений без удаления.
9
Приложение А (обязательное)
Код
using System;
class Node
{
public int Value; public Node Next;
public Node(int value)
{
Value = value;
Next = null;
}
}
class MyList
{
protected Node head; protected Node tail;
public MyList()
10