Флери нахождения Эйлеровых циклов в графе - ДЕЛФИ
Задание: Реализация алгоритма Флёри нахождения эйлеровых циклов вграфе с использованием Delphi.
Граф задается с помощью матрицы смежности или с помощью списка ребер. После задания графа, по нажатии на кнопку "Изобразить граф" его необходимо отобразить графически, исходя из матрицы смежности или списка ребер (грубо говоря вершины- пронумерованные точки, ребра- прямые, их соединяющие). По нажатию на кнопку "Найти эйлеровы циклы" запускается собственно алгоритм Флёри поиска эйлеровых циклов. Выходные данные программы- последовательность вершин эйлерового цикла .
Алгоритм Флёри:
1. Начиная с любой вершины v присваиваем ребру vu номер 1. Вычеркиваемэто ребро из списка ребер и переходим к вершине u.
2. Пусть w - вершина, в которую мы пришли в результате выполнения 1шага алгоритма и k - номер, присвоенный очередному ребру на этом шаге.
Выбираем произвольное ребро инцидентное вершине w, причем мост выбираемтолько в крайнем случае, если других возможностей выбора ребра несуществует. Присваиваем ребру номер k+1 и вычеркиваем его. Процесс длитсядо тех пор, пока все ребра не вычеркнут..
Подробнее:
0. Выбрать произвольную вершину curr.
1. Если в графе есть ребро (curr, i), не являющееся мостом, выполнить:
1а. вывести его в ответ,
1б. удалить его из графа,
1в. присвоить curr = i и снова перейти к шагу 1.
2. Если в графе есть ребро (curr, i), являющееся мостом, выполнить:
2а. вывести его в ответ,
2б. удалить его из графа,
2в. присвоить curr = i и перейти к шагу 1.
3. Если из вершины curr нет ребёр, завершить выполнение алгоритма.
срок 3 дня на проект
ICQ: 380945346