5-Алгоритмизация и программировани / Алгоритмиз и прогр БИСЗУ11 / Лабораторные работы / Лабораторная работа3 Списки / Задание Лабораторная 3

5-Алгоритмизация и программировани / Алгоритмиз и прогр БИСЗУ11 / Лабораторные работы / Лабораторная работа3 Списки / Задание Лабораторная 3

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

Постановка задачи.

Разработать шаблон класса «Односвязный список», включающий в себя необходимый минимум методов, обеспечивающий полноценное функционирование объектов указанного класса при их использовании в программе, а именно:

1) конструкторы (по умолчанию, с параметрами, копирования);

3) добавление элемента в начало, конец, заданную (по номеру) позицию списка;

4) удаление элемента из начала, конца, заданной (по номеру) позиции списка;

5) поиск элемента – по значению и по номеру;

6) вывод списка на экран.

Разработать программу, содержащую меню, которое позволяет протестировать функции добавления, удаления, поиска и вывода на экран элементов списка.

В качестве отдельного пункта меню добавить решение задачи в соответствии со своим вариантом. При необходимости в разработанный шаблон класса добавить дополнительные методы, если того требует решение задачи.

Варианты заданий

Построить список из входной последовательности вещественных чисел, располагая их в порядке возрастания. Вывести список на экран.

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

Из входной последовательности целых чисел построить список. Вывести список на экран. Удалить из списка узлы, содержащие простые числа. Вывести список на экран.

Из входной последовательности вещественных чисел построить список. Вывести список на экран. Перестроить список, разместив все отрицательные значения в конце списка, все положительные значения – в начале списка, а нулевые – между положительными и отрицательными. Вывести список на экран.

Из входной последовательности целых чисел построить список. Вывести список на экран. Удалить из списка узлы, содержащие максимальное числовое значение из входной последовательности. Вывести список на экран.

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

Из входной последовательности целых чисел построить список. Вывести список на экран. Удалить из списка узлы, содержащие числовое значение, заданное пользователем. Вывести список на экран.

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

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

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

Построить список из входной последовательности вещественных чисел. Вывести список на экран. Добавить к каждому элементу списка значение, заданное пользователем. Вывести список на экран.

Построить список из символов вводимого с клавиатуры текста. Вывести на экран первые буквы всех слов входного текста.

Построить список из символов вводимого с клавиатуры текста. Удалить из списка узлы, содержащие первые буквы всех слов входного текста. Вывести список на экран.

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

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

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

Из входной последовательности вещественных чисел построить список. Вывести список на экран. Удалить из списка узлы, содержащие такое число, которое равно числу из предыдущего узла. Вывести список на экран.

Из входной последовательности целых чисел построить список. Вывести список на экран. Перестроить список, расположив все узлы, содержащие простые числа, в конце списка в порядке возрастания числовых значений. Вывести список на экран.

Построить два списка из вещественных чисел, вводимых с клавиатуры: список L1 и список L2. Удалить из списка L1 все узлы, содержащие числа, которые не входят в список L2. Вывести список L1 на экран.

Построить два списка из вещественных чисел, вводимых с клавиатуры: список L1 и список L2. На основе списков L1 и L2 образовать список L3 из чисел, которые входят в список L1, но не входят в список L2. Вывести список L3 на экран.

Построить два списка из целых чисел, вводимых с клавиатуры: список L1 и список L2. На основе списков L1 и L2 образовать список L3 из чисел, которые входят как в список L1, так и в список L2. Вывести список L3 на экран.

Вариант № 22.

Построить два списка из целых чисел, вводимых с клавиатуры: список L1 и список L2. Добавить в конец списка L1 все узлы, содержащие числа, которые входят в список L2, но не входят в список L1. Вывести список L1 на экран.

Вариант № 23.

Из входной последовательности вещественных чисел построить список. Вывести список на экран. Переставить элементы списка в обратном порядке. Вывести список на экран.

Вариант № 24.

Из входной последовательности целых чисел построить список. Вывести список на экран. Найти разность максимального и минимального значений элементов списка. Добавить после каждого элемента списка дополнительный элемент со значением полученной разности. Вывести список на экран.

Вариант № 25.

Из входной последовательности вещественных чисел построить список. Вывести список на экран. Удалить из списка узлы, содержащие такое число, которое равно значению первого или последнего элементов списка. Вывести список на экран.

Вариант № 26.

Из входной последовательности целых чисел построить список. Вывести список на экран. Построить еще один новый список, содержащий все положительные числа из исходного списка. Вывести новый список на экран.

Вариант № 27.

Из входной последовательности целых чисел построить список. Вывести список на экран. Построить еще один новый список, содержащий все простые числа их исходного списка. Вывести новый список на экран.

Вариант № 28.

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

Вариант № 29.

Из входной последовательности целых чисел построить список. Вывести список на экран. Построить еще один новый список, содержащий все четные числа из исходного списка. Вывести новый список на экран.

Вариант № 30.

Из входной последовательности целых чисел построить список. Вывести список на экран. Удалить из списка все нечетные числа. Вывести список на экран.

Контрольные вопросы

1.Какой принцип ООП реализуется с помощью шаблонных функций и классов?

2.Когда целесообразно использовать шаблоны функций? Каков общий вид объявления шаблона функции?

3. Каков синтаксис объявления шаблонного класса? В чем особенности определения функции-метода шаблонного класса? Как объявить объект шаблонного класса?

4. Опишите принцип организации списковых структур. В чем заключается преимущество подобной организации данных?

5. Схематично изобразите порядок добавления нового узла в начало, в конец и в середину односвязного списка.

6. Схематично изобразите порядок удаления узла из начала, из конца и из середины односвязного списка.

Павловская, Т.А. С/С++. Программирование на языке высокого уровня [Текст]: учебник / Т.А. Павловская. – СПб.: Питер, 2005. – 461с.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

📎📎📎📎📎📎📎📎📎📎