Шаблоны классов
Алиас: Стек.
Задание
Дано описание класса MyStack (Приложение 1, файл MyStack.h), который реализует на основе односвязного списка динамическую структуру данных типа стек.
-
Разработайте реализацию класса
MyStack.предупреждениеОбратите внимание на то, что за основу объявления классов
ListNodeиMyStackвам нужно взять код заголовочного файлаMyStack.h, приведенный в Приложении 1. Реализацию данных классов (определение методов) вам также придется описывать в том же заголовочном файле, в котором будут содержаться объявления данных классов. В данном случае в файлеMyStack.h. О причинах невозможности разделить объявление от реализации класса описано также в Приложении 1. -
Разработайте функцию (глобальную), которая выполняет разложение на простые множители целого числа
N. Для хранения множителей функция должна использовать классMyStack. Прототип функции:void Multipliers(int n, MyStack<DATA> &stack). -
В функции
main()распечатайте множители, которые функцияMultipliers()записывает в стек, сначала по убыванию, а потом по возрастанию. Например, дляN=3960программа должна вывести:3960=11 * 5 * 3 * 3 * 2 * 2 * 2
3960=2 * 2 * 2 * 3 * 3 * 5 * 11 -
Классы
ListNodeиMyStackнеобходимо упаковать в самостоятельную статическую библиотеку.
Не забудьте реализовать конструкторы копирования и перегрузки оператора = для ListNode и MyStack.
Режимы выполнения программы
В данной лабораторной работе разделение на демонстрационный и интерактивный режим не требуется. Достаточно продемонстрировать работу функций класса MyStack так, как это указано в задании. При необходимости при очной демонстрации необходимо будет менять числа в коде программы и пересобирать программу для показа.