Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы - 2 сем - Калмычков / лаба 3 - 2 сем ПРОГРАММИРОВАНИЕ.docx
Скачиваний:
0
Добавлен:
09.07.2025
Размер:
230.55 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра систем автоматизированного проектирования

отчет

по лабораторной работе №3

по дисциплине «Программирование»

Тема: «Основные операции над линейным списком и их реализация на языке С++ с использованием структур. Удаление элементов списка.»

Студентка гр. 3352

Преподаватель

Санкт-Петербург

2024

  1. Исходная формулировка

3.18 - Удалить каждый элемент, расположенный перед элементом с заданным значением

3.6 - Удалить весь список

  1. Формальная постановка задачи

Из входного и доп. файлов в списки считываются строки. В доп. файле одна строка - заданное значение. После считывания строк из файлов происходит обработка первого списка. Текущий элемент изначально является головным. Если этот элемент совпадает с заданным значением, мы переходим к следующему элементу. Как только у текущего элемента появляется предшествующий ему, мы можем удалять текущий элемент и соединять предшествующий с следующим после текущего. После выполнения обработки списка происходит вывод в выходной файл. В конце оба списка удаляются.

  1. Контрольный пример

Заданное значение:

Hello

Список:

Hello

Privet

Bye

Hello

Результат:

Hello

Privet

Hello

  1. Пользовательские типы

Struct StrL

Поля структуры

Тип

Назначение

M

char

Строка списка1

A

char

Строка списка2

Len

int

Длина строки1

dl

int

Длина строки 2

Read_S()

bool

Чтение строки1

Print1()

void

Вывод строки1

Search1()

bool

Проверка строк на совпадение

Read_El()

int

Чтение строки2

printEl()

void

Вывод строки2

Struct ListNode

Поля структуры

Тип

Назначение

line

StrL

Элемент списка

*next

ListNode

Указатель на следующий элемент списка1

addMemo()

void

Создание текущего элемента списка1

addNext()

void

Создание следующегоэлемента списка1

*nextE

ListNode

Указатель на следующий элемент списка2

elemMemo()

void

Создание текущего элемента списка2

elemNext()

void

Создание следующегоэлемента списка2

Struct Text

Поля структуры

Тип

Назначение

count

int

Количество строк в списке1

chet

int

Количество строк в списке2

Read_file()

bool

Считывание строк и занесение в список1

Read_Elem()

bool

Считывание строк и занесение в список2

Print2()

void

Вывод списка1

PrintElem()

void

Вывод списка2

Process()

void

Обработка списка1