Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Болтушкин Л.С., группа 712-2, практика 3.docx
Скачиваний:
0
Добавлен:
04.10.2024
Размер:
547.74 Кб
Скачать

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

Федеральное государственное бюджетное образовательное учреждение высшего образования

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

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

СПИСКИ

Отчет по практической работе №3

по дисциплине «Структуры данных»

Студент гр. 712-2 ___________ Л.С. Болтушкин ___________

Руководитель Доцент кафедры КИБЭВС

_______ __________ Е.Е. Лунёва

__________

Томск 2024

Задание

Реализовать динамический список при помощи двух классов. Класс Node – отвечает за узел элемента списка, класс List – за работу со списком.

Реализовать интерфейсную часть – методы:

1) инициализация пустого списка – делаем это в конструкторе, если используются классы.

2) добавление элементов списка в конец bool add (int element).

3) удаление заданного элемента из списка bool remove_item (int element), где int element - удаляемый элемент, метод возвращает true если удаление элемента прошло успешно.

4) очистка списка – bool clear(), возвращает true при успешной очистке, false

в противоположном случае.

5) поиск элемента списка по образцу.

Вариант 6. Реализуемый список должен быть односвязным. Два упорядоченных динамических списка объединить в один упорядоченный - реализовать в виде метода. Реализовать сортировку элементов списка в виде метода.  

Содержание

Задание 2

1 Введение 4

2 Ход работы 5

2.1 Инициализация пустого списка 5

2.2 Добавление элементов списка в конец 7

2.3 Удаление заданного элемента из списка 9

2.4 Очистка списка 10

2.5 Поиск элемента...……………………………………………………………..11

2.6 Слияние двух списков………………………………………………………..12

2.7 Сортировка……………………………………………………………………15

Заключение 18

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

Приложение Б 19

Приложение В 20

Введение

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

1 Ход работы

1.1 Инициализация пустого списка

Согласно заданию, создаем два класса: Node, который отвечает за узел

списка, и List, отвечающий за работу со списком. Далее создадим объекты класса Node: data – хранит данные узла, Node next – содержит ссылку на следующий узел.

На рисунке 2.1 представлен фрагмент кода, объявляющего узел списка.

Рисунок 1.1 – Объявление узла списка

Затем создадим объекты класса List: head – первый элемент списка. На рисунке 1.2 представлен фрагмент кода, объявляющего список.

Рисунок 1.2 – Объявление списка

1.2 Добавление элементов списка в конец

  1. Создается новый узел newNode с переданным значением element.

  2. Проверяется, пуст ли список (переменная head). Если список пуст (т.е., head равен null), то head устанавливается равным новому узлу newNode, что делает его первым элементом списка.

  3. Если список не пуст, то создается переменная current, которая начинает указывать на голову списка (переменную head).

  4. Затем выполняется цикл while, который перебирает элементы списка, пока не найдет последний элемент (элемент, у которого Next равен null). Это нужно для того, чтобы найти место, куда можно добавить новый элемент.

  5. После нахождения последнего элемента, current.Next устанавливается равным новому узлу newNode, что добавляет новый элемент в конец списка.

  6. Метод возвращает true в качестве результата выполнения операции добавления элемента.

Рисунок 1.3 – Добавление элементов списка в конец

1.3 Удаление заданного элемента из списка

Проверяется, пуст ли список (переменная head). Если список пуст (т.е., head равен null), то возвращается false. Если элемент равен head.data, то head. next и возвращается true, если такого элемента нет возвращается false.

Рисунок 1.4 – Удаление элемента из списка.