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

Практики(Вариант №1) / Практическая работа №4

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

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

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра безопасности информационных систем (БИС)

СТЕКИ И ОЧЕРЕДИ Отчет по практической работе №4 по дисциплине «Структуры данных»

Студент гр.

________

__.__.2025

Принял

Преподаватель кафедры КИБЭВС

________ Е.Е. Лунева __.__.2025

Томск 2025

Задание

Реализовать на базе классов из практики 3 работу с очередью и со стеком. Продемонстрировать типовые функции работы со стеком: -

1.удалить из стека - возвращать удаляемый элемент возвращается по результату работы метода,

2.добавить в стек,

3.число элементов стека,

4.взять верхний элемент стека без удаления.

Очередь:

1.число элементов в очереди,

2.удалить из очереди

3.добавить в очередь.

получить первый элемент из очереди без удаления из нее.

2

 

Оглавление

Задание...................................................................................................................

2

Введение.................................................................................................................

4

1 ХОД РАБОТЫ....................................................................................................

5

Заключение.............................................................................................................

9

Приложение А......................................................................................................

10

3

Введение

Целью данной работы является реализация классов для работы со стеком и очередью на основе ранее изученных концепций.

4

1 ХОД РАБОТЫ

Push: Добавляет элемент на верхушку стека. Если стек был пуст, новый элемент становится и верхом, и основанием стека (рис.1)

Рисунок 1 — Push

Pop: Удаляет и возвращает верхний элемент стека. Если стек пуст, вызывает ошибку. При удалении верхнего элемента обновляется указатель на верх (рис. 2)

Рисунок 2 — Pop

Peek: Возвращает верхний элемент стека без его удаления. Если стек пуст, вызывает ошибку (рис. 3)

5

Рисунок 3 — Peek

Size: Возвращает количество элементов в стеке. Считывает их, проходя по всем элементам, начиная с верхнего (рис. 4)

Рисунок 4 — Size

Print: Выводит все элементы стека в порядке от верхнего к нижнему. Позволяет визуализировать текущие элементы стека (рис. 5)

Рисунок 5 — Print

6

Enqueue: Добавляет элемент в конец очереди. Если очередь была пустой, новый элемент становится и первым, и последним (рис. 6)

Рисунок 6 — Enqueue

Dequeue: Удаляет и возвращает первый элемент очереди. Если очередь пуста, вызывает ошибку. Обновляет указатель на первый элемент после удаления (рис. 7)

Рисунок 7 - Dequeue

7

Peek: Возвращает первый элемент очереди без его удаления. Если очередь пуста, вызывает ошибку (рис. 8)

Рисунок 8 — Peek

Count: Возвращает количество элементов в очереди. Считывает их, проходя от первого до последнего элемента (рис. 9)

Рисунок 9 — Count

Print: Выводит все элементы очереди в порядке от первого к последнему. Позволяет вывести текущие элементы очереди (рис. 10)

Рисунок 10 — Print

8

Заключение

В ходе работы были успешно реализованы функциональные классы для стека и очереди. Мы продемонстрировали типовые операции, включая добавление и удаление элементов, а также получение значений без удаления.

9

Приложение А

(обязательное) Код программы

using System; public class Node

{public int Value; public Node Next; public Node(int value)

{Value = value; Next = null;

} }

public class MyStack

{

private Node top; private int count;

public MyStack()

{top = null; count = 0;

}

 

 

// добавить элемент в стек

 

public bool Push(int element)

 

{

Node newNode = new Node(element);

 

 

 

 

newNode.Next = top;

 

 

top = newNode;

 

 

count++;

 

}

return true;

 

 

 

// удалить и вернуть верхний элемент стека

public int Pop()

 

{

if (top == null)

 

 

 

 

throw new InvalidOperationException("Стек пуст");

 

int value = top.Value;

 

 

top = top.Next;

 

 

count--;

 

}

return value;

 

 

 

// вернуть верхний элемент без удаления

 

public int Peek()

 

{

if (top == null)

 

 

 

 

throw new InvalidOperationException("Стек пуст");

}

return top.Value;

 

 

 

// количество элементов в стеке

 

public int Size

 

{

get { return count; }

 

 

10

 

 

Соседние файлы в папке Практики(Вариант №1)