![](/user_photo/2706_HbeT2.jpg)
Атд «Итератор входящих ребер вершины»
Интерфейс АТД «Итератор входящих ребер вершины» включает операции:
Конструктор (v) - создает итератор входящих ребер графа для вершины, заданной номером v,
beg( ) - возвращает итератор, установленный на первое входящее ребро вершины,
end( ) - возвращает итератор, соответствующий окончанию переходов итератора,
operator ++ - переход к следующему входящему ребру,
operator * - возвращает дескриптор входящего ребра вершины, на которое указывает итератор.
Задача 1.
Спроектировать и реализовать шаблонный класс для АТД «Задача 1» в соответствии с вариантом и использовать для решения задачи на графе.
Интерфейс АТД «Задача 1» включает операции:
Конструктор (g) - создает объект задачи 1, ассоциированный с графом g, и выполняет решение задачи для графа g,
Конструктор (T) - конструктор копирования создает копию объекта – задачи T,
Деструктор () - уничтожает внутренние структуры объекта задачи,
Set (g) – связывает объект задачи с графом g и выполняет решение задачи 1 для графа g,
Restart ( ) – повторно выполняет решение задачи 1 для графа g,
Result( ) – возвращает результат решения задачи 1
Варианты задачи 1:
классификация всех рёбер орграфа относительно заданной вершины,
определение последовательности вершин на основе обратной топологической сортировки ациклического DAG - орграфа,
определение ребер – мостов в неориентированном графе,
определение в орграфе кратчайшего по числу ребер пути между заданной парой вершин на основе алгоритма Флойда – Уоршалла,
определения остовного леса неориентированного графа с максимальной высотой, построенного методом поиска в глубину и методом поиска в ширину,
формирования двудольного орграфа с раскраской в два цвета,
формирование реберно-связного неориентированного графа,
определение гамильтонова цикла в орграфе,
сортировка ребер неориентированного графа в порядке двухпроходного эйлерова цикла,
построение редуцированного орграфа сильносвязных компонент,
определение всех сильносвязных компонент в орграфе, включающих не менее k вершин,
определение вершин отделимости в неориентированном графе,
Задача 2
Спроектировать и реализовать шаблонный класс для АТД «Задача 2» в соответствии с вариантом и использовать для решения задачи на взвешенном графе.
АТД «Задача2»
Интерфейс АТД «Задача 2» включает операции:
Конструктор (g) - создает объект задачи 3, ассоциированный с графом g, и выполняет решение задачи для графа g,
Конструктор (T) - конструктор копирования создает копию объекта – задачи T,
Деструктор () - уничтожает внутренние структуры объекта задачи,
Set (g) – связывает объект задачи с графом g и выполняет решение задачи 2 для графа g,
Restart ( ) – повторно выполняет решение задачи 2 для графа g,
Result( ) – возвращает результат решения задачи 2.
Варианты алгоритмов:
приведение отрицательной весовой функции орграфа к положительной методом Джонсона,
определение входящих в заданную вершину кратчайших путей на основе алгоритма Дейкстры,
определения кратчайших путей для всех пар вершин взвешенного орграфа на основе алгоритма Беллмана-Форда.
определение диаметра и пути, соответствующего диаметру, на основе алгоритма Флойда,
нахождения ребра (ребер), устранение которых вызывает максимальное возрастание кратчайшего пути из вершины u в вершину v во взвешенном орграфе на основе алгоритма Дейкстры,
определение эксцентриситета заданной вершины взвешенного орграфа с отрицательной весовой функции на основе алгоритма Беллмана-Форда.
вычисление центра взвешенного орграфа на основе алгоритма Флойда,
определение списка вершин, которые лежат в пределах заданного расстояния d от заданной вершины взвешенного орграфа с отрицательной весовой функции на основе алгоритма Беллмана-Форда,
разбиение вершин взвешенного неориентированного графа на кластеры, объединяющие вершины ребрами с длиной, большей d. Для разбиения использовать алгоритм Крускалла,
построение минимального остовного дерева взвешенного неориентированного графа методом Прима,
определение радиуса и соответствующего радиусу пути взвешенного орграфа на основе алгоритма Дейкстры,
определение периферии взвешенного орграфа на основе алгоритма Флойда,