Практика 4(СД)
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
СТЕКИ И ОЧЕРЕДЬ Отчёт по практической работе №4
по дисциплине «Структуры данных»
Студент гр. 714-1
_______ И.С. Максимов
__.__.2025
Доцент кафедры КИБЭВС
_______ Е.Е. Лунёва
__.__.2025
Томск 2025
|
Оглавление |
Введение................................................................................................................... |
3 |
1. Ход работы .................................................................................................... |
4 |
Заключение .............................................................................................................. |
6 |
Приложение А ......................................................................................................... |
7 |
МОГУТ БЫТЬ ПРОБЛЕМЫ С СОДЕРЖАНИЕМ В PDF
2
Введение
Реализовать на базе классов из предыдущего задания работы с очередью и стеком.
Требуется продемонстрировать типовые функции работы со стеком:
1.Удаление из стека,
2.Добавление в стек,
3.Изменение числа элементов стека,
4.Взятие верхнего элемента стека без удаления.
Для очереди требуется реализовать:
1.Изменение числа элементов в очереди,
2.Удаление из очереди,
3.Добавление в очередь.
3
1.Ход работы
Входе работы были созданы классы Stack и Queue. Для каждого из них были созданы методы в соответствие с заданием. Методы представлены в таблице 1.1.
Таблица 1.1 – Описание классов стека и очереди
Классы
Stack |
Queue |
|
|
Методы классов и их описание |
|
|
|
Метод Push() — добавляет новый |
Метод Enqueue() — добавляет |
элемент в стек. |
элемент в конец очереди. |
|
|
Метод Pop() — удаляет верхний |
Метод Dequeue() — удаляет элемент |
элемент из стека и возвращает его |
из начала очереди. |
значение. |
|
|
|
Метод Peek() — возвращает значение |
Метод Peek() — возвращает значение |
верхнего элемента стека без |
верхнего элемента стека без |
удаления. |
удаления. |
|
|
Метод Count() – считает количество |
Метод Count() – считает количество |
элементов. |
элементов. |
|
|
Пример работы программы приведён на рисунках 1.1, 1.2, 1.3.
Рисунок 1.1 – Выбор структуры для работы
4
Рисунок 1.2 – Выбор действия для работы со структурой и его выполнение
Рисунок 1.3 – Значение добавлено в стек
5
Заключение
В процессе выполнения практической работы были освоены навыки
работы со стеком и очередью, посредством реализации с ними типовых
функций.
6
Приложение А
Листинг кода: using System;
class Node
{
public int Data; public Node Next;
public Node(int data)
{
Data = data;
Next = null;
}
}
class Stack
{
private Node top;
public Stack()
{
top = null;
}
7
public void Push(int data)
{
Node newNode = new Node(data); newNode.Next = top;
top = newNode;
}
public int? Pop()
{
if (top == null) return null;
int value = top.Data; top = top.Next; return value;
}
public int? Peek()
{
if (top == null) return null; return top.Data;
8
}
public int Count()
{
int count = 0; Node current = top;
while (current != null)
{
count++;
current = current.Next;
}
return count;
}
public override string ToString()
{
if (top == null) return "(empty)";
Node current = top; string result = ""; while (current != null)
9
{
result += current.Data + " -> "; current = current.Next;
}
return result + "null";
}
}
class Queue
{
private Node head; private Node tail;
public Queue()
{
head = null; tail = null;
}
public void Enqueue(int data)
{
Node newNode = new Node(data);
10
