|
Written by Tomasz Lubiński
|
|
Tuesday, 09 August 2005 21:35 |
|
There are no translations available.
Cykl Eulera, to taki cykl w grafie, który zawiera każdą krawędź grafu dokładnie raz. Warunkiem istnienia cyklu są:
- spójność grafu,
- dla grafu skierowanego należy sprawdzić czy do każdego wierzchołka wchodzi tyle samo krawędzi co wychodzi
- dla grafu nieskierowanego z każdego wierzchołka musi wychodzić parzysta liczba krawędzi.
Szukanie cyklu:
Zaczynamy od dowolnego wierzchołka (w naszym przypadku będzie to ten z najmniejszym indeksem), dodajemy ten wierzchołek na stos i idziemy do następnego, osiągalnego z niego wierzchołka z najmniejszym indeksem, a łącząca go z nim drogę usuwamy (rys.1), dodajemy ten wierzchołek na stos i idziemy do następnego, osiągalnego wierzchołka z najmniejszym indeksem, a łączącą go z nim drogę usuwamy (rys.2), itd...
Jeżeli nie możemy już nigdzie pójść pobieramy element ze stosu (będzie on kolejnym w cyklu) i teraz z ostatniego wierzchołka na stosie idziemy dalej (rys. 4). Czynność powtarzamy tak długo jak długo mamy jakieś wierzchołki na stosie
Oto przykłądowy graf

Przebieg algorytmu:
 |
 |
Stos: a,b Cykl: |
Stos: a,b,c Cykl: |
 |
 |
Stos: a,b,c,a Cykl: |
Stos: a,b,d Cykl: a,c |
 |
|
Stos: a,b,d,e,b Cykl: a,c |
|
Teraz już nigdzie nie możemy pójść więc zdejmujemy kolejno wierzchołki ze stosu i dodajemy je do cyklu. Końcowy wynik tych operacji to cykl: a,c,b,e,d,b,a.
.
|
|
Last Updated on Thursday, 27 May 2010 18:45 |