Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Лабораторная работа №11






Линейные списки

 

Цель лабораторной работы: изучение способов создания и принципов использования односвязных линейных списков; изучение стандартных средств языка C/C++ для работы с динамической памятью; совершенствование навыков структурного программирования на языке C/С++ при решении задач обработки линейных списков.

 

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

 

Порядок выполнения работы:

 

1) Получить у преподавателя индивидуальное задание.

2) Построить схему алгоритма решения задачи.

3) Использовать функции создания, просмотра, обработки списка, удаления списка из динамической памяти.

4) Составить спецификации функций.

5) Составить программу на языке C/С++.

6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов. Обеспечить одновременный показ на экране исходного и результирующего списка.

7) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, спецификация функций, текст программы, контрольные примеры.

 


Варианты индивидуальных заданий

 

По списку L построить два новых списка L1 и L2: первый из положительных элементов, а второй из остальных элементов списка.

 

Вставить в список L новый элемент E1 за каждым вхождением заданного элемента E, если Е входит в L.

 

Вставить в список L новый элемент Е1 перед каждым вхождением элемента Е, если Е входит в L.

 

Вставить в непустой список L перед его последним элементом пару новых элементов Е1 и Е2.

 

Вставить в непустой список L, элементы которого упорядочены по не убыванию, новый элемент E так, чтобы сохранить упорядоченность списка.

 

Удвоить каждое вхождение элемента Е в списке L.

 

Удалить из списка L все вхождения элемента Е.

 

Удалить из списка L все отрицательные элементы.

 

Удалить из списка L за каждым вхождением элемента Е один элемент, если он есть и отличен от Е.

 

Оставить в списке L только первые вхождения одинаковых элементов.

 

В списке L из каждой группы подряд идущих равных элементов оставить только один.

 

Перевернуть список L, то есть изменить ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке.

 

Определить, входит ли список L1 в список L2.

 

Проверить, есть ли в списке L хотя бы два одинаковых элемента.

 

Проверить на равенство два списка L1 и L2.

 

Построить список L1 – копию списка L.

 

Добавить в конец списка L1 все элементы списка L2.

 

Вставить в список L за первым вхождением элемента Е все элементы списка L1, если Е входит в L.

 

Сформировать список L, включив в него по одному разу элементы, которые входят хотя бы в один из списков L1 и L2.

 

Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.

 

Сформировать список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список L2.

 

Сформировать список L, включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входят в другой из них.

 

Объединить два упорядоченных списка L1 и L2 в один упорядоченный список, построив новый список L.

 

 

Объединить два упорядоченных списка L1 и L2 в один упорядоченный список L1, меняя соответствующим образом ссылки в L1 и L2.

 

Найти среднее арифметическое элементов непустого списка.

 

Поменять местами первый и последний элемент списка.

 

Проверить, упорядочены ли элементы списка по алфавиту.

 

Найти сумму последнего и предпоследнего элементов списка.

 

Вставить в начало списка новый элемент.

 

Вставить в конец списка новый элемент.

 

Вставить новый элемент после первого элемента непустого списка.

 

Удалить из непустого списка первый элемент.

 

Удалить из списка второй элемент, если такой есть.

 

Удалить из непустого списка последний элемент.

 

Удалить из списка первый отрицательный элемент, если такой есть.

 

Заменить в списке L все вхождения элемента Е1 на Е2.

 

Перенести в конец списка его первый элемент.

 

 

Перенести в начало списка его последний элемент.

 

Определить, входит ли элемент Е в список L.

 

Подсчитать число вхождений элемента Е в список L.

 

Найти максимальный элемент непустого списка.

 

Удалить из списка L первое вхождение элемента Е, если такое есть.

 

Подсчитать количество слов списка, которые начинаются и оканчиваются одной и той же литерой.

 

Подсчитать количество слов списка, которые начинаются с той же литеры, что и следующее слово.

 

Подсчитать количество слов списка, которые совпадают с последним словом.

 







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.