Задание 1 1. Спроектировать и реализовать АТД «BST – дерево» для коллекции, содержащей ключи и данные произвольного типа. Типы ключей и данных задаются клиентской программой в виде параметров шаблонного класса «BST – дерево». Интерфейс АТД «BST – дерево» включает следующие операции: опрос размера дерева (количества узлов), очистка дерева (удаление всех узлов), проверка дерева на пустоту, поиск данных с заданным ключом, включение в дерево нового узла с заданным ключом и данными, удаление из дерева узла с заданным ключом, обход узлов в дереве по схеме, заданной в варианте задания, и вывод ключей в порядке обхода, Для дополнительная операция, заданная в варианте задания. тестирования коллекции интерфейс АТД «BST – дерево» включает дополнительные операции: вывод структуры дерева на экран, 2. Выполнить отладку и тестирование всех операций АТД «BST – дерево» с помощью меню операций. 3. Составить отчёт. Отчёт должен содержать следующие пункты: 1) титульный лист, 2) общее задание (пункты 1 – 4) и вариант задания, 3) формат АТД, 4) определение класса для коллекции «BST – дерево», 5) выводы, 6) список использованной литературы, 7) приложение с текстами программ: Задание Алгоритмы основных операций АТД (вставки, удаления и поиска) реализуются в рекурсивной форме. Схема операции обхода: t → Lt → Rt. Дополнительная операция: определение длины внутреннего пути дерева (длина внутреннего пути = сумма глубин внутренних узлов). Методические указания: 1. Для АТД «BST-дерево» разрабатываются шаблонный класс. Параметрами шаблона являются тип ключей и тип данных, хранящихся в узлах дерева. 2. Для узлов дерева разрабатывается вспомогательный внутренний класс, определённый в классе дерева. 3. Для реализации операций АТД, рекомендуется использовать алгоритмы, приведённые в в файле Pseudocodes.doc. 4. Для разработанного класса дерева разрабатывается программа тестирования отдельых операций через с помощью меню. 5. Тестирование операций через меню выполняется для BST-дерева небольшого размера (до 10 элементов). Тестирующая программа выполняет вызов метода коллекции для выбранной операции без предварительной проверки входных параметров метода и состояния коллекции. После выполнения операции необходимо вывести на экран содержимое BST-дерева с помощью операции вывода структуры дерева. При выводе узла дерева необходимо отражать только ключ поиска, хранящийся в узле. Также необходимо выводить вспомогательный параметр узла, если он введён в узел BSTдерева для дополнительной операции, заданной в варианте задания. Задание №2 1. Спроектировать и реализовать АТД «Граф». Интерфейс АТД «Граф» включает операции: Конструктор пустого графа для заданных числа вершин, типа, и формы представления V( ) - опрос числа вершин в графе, E( ) - опрос числа ребер в графе, Insert(v1,v2) вставка ребра, соединяющего вершины v1, v2, Delete (v1,v2) удаление ребра, соединяющего вершины v1, v2, Edge(v1,v2) опрос наличия ребра, соединяющего вершины v1, v2, SetEdge(v1,v2, data) задание параметров ребра, Для визуализации коллекции интерфейс АТД «BST – дерево» включает дополнительную операцию: вывод структуры графа на экран, 2. Выполнить отладку и тестирование всех операций АТД «Граф» с помощью меню операций. 3. Разработать программу визуализации графа и работы алгоритмов. Программа должна обеспечивать визуальный просмотр структуры графа (V 20, E 30), результатов работы алгоритмов, возможность модификации структуры графа. 4. Составить отчёт. Отчёт должен содержать следующие пункты: 1) титульный лист, 2) общее задание и вариант задания, 3) формат АТД «Граф», 4) определение класса для коллекции «Граф», 5) описание алгоритма, заданного вариантом, 6) список использованной литературы, 7) приложение с текстами программ: Задание Реализация АТД « Взвешенный орграф». Граф представлен в виде списков смежности. Определение радиуса и соответствующего радиусу пути взвешенного орграфа на основе алгоритма Дейкстры. (радиус – минимальный эксцентриситет в графе, путьпоследовательность вершин, лежащих на пути с суммарным весом ребер, равным радиусу). 3.2 Методические указания. 1) Простой граф не должен допускать вставку параллельных ребер и петель. 2) АТД «Простой граф» реализуется в виде шаблонного класса. Параметрами шаблона являются тип данных и тип веса, связанных с ребрами графа. 3) Рекомендуется использовать дополнительный объект - «Ребро графа», сохраняющий номера вершин ребра, данные. связанные с ребром и его вес. 4) Граф может быть представлен в виде списков смежности (L-графа) или матрицы смежности(M-графа) Элементы списков смежности или матрицы смежности содержат указатели на ребра. 5) Для реализации алгоритма, заданного в варианте задания, разработать объект «Задача», связанный через указатель с объектом «Простой граф». 6) Разработать программу визуализации графа и работы алгоритмов. Программа должна обеспечивать визуальный просмотр структуры графа, результатов работы операций АТД «Простой граф», операций классов - клиентов для небольших графов (V 20, E 30). Должна обеспечиваться возможность модификации структуры графа (вставка или удаление вершин, ребер, изменение параметров, связанных с вершинами, ребрами).