Флери нахождения Эйлеровых циклов в графе - ДЕЛФИ

Иван17 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
01.12.2008

Задание: Реализация алгоритма Флёри нахождения эйлеровых циклов вграфе с использованием 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

Заявки фрилансеров