Скачиваний:
40
Добавлен:
17.03.2015
Размер:
49.66 Кб
Скачать

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

Списки

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

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

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

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

2) деструктор;

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

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

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

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

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

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

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

Вариант №1.

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

Вариант №2.

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

Вариант №3.

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

Вариант №4.

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

Вариант №5.

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

Вариант №6.

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

Вариант №7.

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

Вариант №8.

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

Вариант №9.

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

Вариант №10.

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

Вариант №11.

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

Вариант №12.

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

Вариант №13.

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

Вариант №14.

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

Вариант №15.

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

Вариант №16.

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

Вариант №17.

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

Вариант №18.

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

Вариант №19.

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

Вариант №20.

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

Вариант №21.

Построить два списка из целых чисел, вводимых с клавиатуры: список 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. Схематично изобразите порядок удаления узла из начала, из конца и из середины односвязного списка.

Литература

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