Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Sveučilište Jurja Dobrile u Puli

Odjel za informacijsko-komunikacijske tehnologije

FILIP JURMAN

PRIMJENA GRAFOVA (EULER I PROBLEM SEDAM MOSTOVA KENIGSBERGA)

Seminarski rad

Pula, travanj 2019. godine


Sveučilište Jurja Dobrile u Puli
Odjel za informacijsko-komunikacijske tehnologije

FILIP JURMAN

PRIMJENA GRAFOVA (EULER I PROBLEM SEDAM MOSTOVA KENIGSBERGA)

Seminarski rad

JMBAG: 0303025769, izvanredni student


Studijski smjer: Informatika, diplomski

Kolegij:Struktura podataka i algoritmi


Mentor: doc. dr. sc. Tihomir Orehovački

Pula, travanj, 2019. godine


SADRŽAJ
1. UVOD........................................................................................................................................................... 1

2. PRIMJENA GRAFOVA ............................................................................................................................ 2

2.1 Vrste grafova i pojmovi................................................................................................................ 2

2.2 Problem sedam mostova Kenigsberga .................................................................................. 4

2.3 Eulerovo rješenje ........................................................................................................................... 5

2.3.1 Eulerov graf ................................................................................................................................... 7

2.3.2 Eulerov teorem ............................................................................................................................ 8

2.4 Fleuryjev algoritam i rješenje Eulerovog problema ......................................................... 9

ZAKLJUČAK ..................................................................................................................................................... 11

Popis literature .............................................................................................................................................. 12

Internet izvori: ............................................................................................................................................... 12

Prilog ................................................................................................................................................................. 13
1. UVOD

Situacije iz stvarnog svijeta mogu se konvencionalno opisati dijagramom koji


sadrži set točaka i linija koje spajaju određene parove točaka, takav dijagram predstavlja
graf. Grafovi služe pri kvalitetnom shvaćanju problema u svrhu reduciranja na
manje/jednostavnije probleme, te samim time i rješavanjem istog. Primjena takvih
grafova obuhvaća široku lepezu od molekularne strukture u kemiji, modelu podataka i
strukturi u računalnim mrežama i u programiranju, prometu u geoinformacijskim
sustavima, opterećenja i nosivosti prilikom proračuna u građevini, brodogranji,
strojarstvu itd.
Matematika igra posebnu ulogu u različitim ljudskim disciplinama. Posebna grana
matematike koja se bavi grafovima i strukturi modela zove se Teorija grafova te se njen
začetak smatra objavom rješenja „Problem mostova Kenigsberga“ 1735. godine sa strane
Leonharda Eulera (1707-1783) u časopisu „Commentarii Academiae Scientiarum
Imperialis Petropolitae“. Takav problem doveo je do koncepta Eulerov graph, eulerova
putanja. Problem mostova dokazan je nerješiv 1741. Iako je problem smatran trivijalnim,
uspješno rješenje je nemoguće, Euler je prvi matematičar koji je uz pomoć teorije grafova
objasnio zašto i je nemoguće.1

Slika 1: Prikaz grada Kenigsberga


Izvor: Vennamaneni, A.; The Seven Brigdes of Konigsberg-Euler's solution, ppt

1Kopić, M.,Klobučar, A.; Mostovi Kaliningrada nekad i sada, OSJEČKI MATEMATIČKI LIST 7, Odjel za
matematiku, Osijek, 2007., str. 33.-34

1
2. PRIMJENA GRAFOVA

Strukturu grafova sačinjavaju čvorovi predstaljeni kao vrhuvi i linije predstavljene


kao grane između čvorova. Kod geoinformacijskih sustava, grafovi predočuju fizičke
mreže kao što su cijevovodi, kanalizacija, dalekovodi itd.

Definicija grafa: Graf G sadrži set objekata V = {v1, v2, v3,...} nazvanim čvorovima i
drugi set E = { e1, e2, e3,...} čiji se elementi nazivaju bridovi (također zvanim linijama i
lukovima). Set V(G) se naziva čvorišnim setom G i E(G) se naziva rubni set. Uobičajeno je
da se graf zapisuje u obliku G = (V, E).2

Jedna od kasnijih primjena javlja se sredinom 19. stoljeća prilikom analize električnih
mreža, g. Kirchhoff u članku objavljuje kako koristeći se pojmovima teorije grafova
omogućuje da se osnovni zakoni kao što su I i II Kirchhoffovi zakoni o raspodjeli struja
primjene.3

2.1 Vrste grafova i pojmovi

Također je uobičajeno u teoriji grafova vrhove označavati malim slovima u i v, a


bridove malim slovima e i f gdje se pri tome e = {u, v} označava brid koji spaja vrhove ili
čvorove u i v, kraće zapisano e=uv. Kako je vidljivo na slici 2 vrhovi A i B su susjedni ako
postoji brid e = AB, dok za bridove e i f vrijedi da su susjedni jedino ako postoji vrh koji je
njima zajednički. Put u grafu G je konačan niz bridova u kojemu su svaka dva brida
susjedna, vrhovi su im različiti osim eventualno početnog i krajnjeg vrha. Put se može
označavati kao v1 -> v2 -> v3 ... -> vn .4

2 D. Galac, Izrada multimodalnog planera putovanja za područje grada Zadra, Sveučilište u Zagrebu, Fakultet
Prometnih znanosti, Zagreb, 2015., str. 8
3 Mateljan, et al., Teorija grafova i linearno programiranje, Elektrotehnički fakultet u Sarajevu, 2015., str. 1.
4 op. cit., str. 8-9

2
Slika 2: Primjer grafova
Izvor: Mateljan, et al., Teorija grafova i linearno programiranje, Elektrotehnički fakultet u Sarajevu, 2015.,
str. 1.

Šetnja predstavlja ograničen broj alternativnih sekvenci čvorova i bridova gdje počinju i
završavaju sa čvorovima gdje a) svaki brid u sekvenci spaja vrhove koji ga prethode i
slijede ga u nizu, tj pruža mogućnost ponavljanja, dok b) niti jedan brid se ne pojavljuje
više od jednom u sekvenci. Na slici 3 prikazani graf služi kao primjer definiranja šetnje,
v2e4v6e5v4e3v3 i v1e8v2e4v6e6v5e7v5 predstavljaju šetnje.

Slika 3: Primjer grafa 2


Izvor: C. Vasudev, Graph Theory with Application, New Delhi, New Age International Ltd., 2006 ,str. 57
U šetnji, čvorovi se mogu ponoviti više puta.U otvorenoj šetnji gdje se niti jedan čvor ne
ponavlja naziva se jednostavni put ili elementarni put. Zatvorena šetnja sa barem jednim
bridom i istim početnim i krajnjim čvorom naziva se ciklus ili kružni put. Na slici 3,
v6e5v4e3v3e2v2 prikazuje put, a v5e7v5e6v6 prikazuje otvorenu šetnju no ne i put, dok
v1e1v2e8v7e9v1 predstavlja stazu.
Broj bridova u šetnji naziva se duljina, budući da su staze i putevi šetnje, duljina puta
označava broj bridova na putu dok duljina ciklusa označava broj bridova u ciklusu.5

Orijentirani ili usmjereni grafovi predstavljaju grafove u kojima su grane tj. bridovi

5 C. Vasudev, Graph Theory with Application, New Delhi, New Age International Ltd., 2006, str. 56.-58.

3
označeni sa strelicom koja označava orijentaciju u vezi između dva brida. S toga može se
zaključiti da je usmjereni graf uređena trojka G = (V,E, ϕ) gdje je V= V(G) neprazan skup
čiji elementi predstavljaju čvorove, E=E(G) predstavlja skup usmjerenih bridova, a
funkcija ϕ predstavlja funkciju incidencije s kojom se svakom bridu e iz E pridružuje
uređeni par (u,v), gdje je u početni vrh, a v je krajnji vrh od e. Neorijentirani grafovi ne
sadrže strelicu orijentacije bridova pri čemu se podrazumijeva da postoji veza u oba
smjera tj. dva smjera se smatraju različitim bridovima.6 Slika 4 prikazuje neorijentirani
graf (lijevo) i orijentirani graf (desno).7

Slika 4: Neorijentirani i orijentirani graf


Izvor: B. Amina, et al., Teorija grafova. Osnovni pojmovi u teoriji grafiva. Primjena teorije grafova u
prometu – Seminarski rad - , Sarajevo, Univerzitet u Sarajevu, 2014., str. 2.

2.2 Problem sedam mostova Kenigsberga

Jedan od najpoznatijih problema u teoriji grafova kao i standard za buduće knjige u


tom području. Sedam mostova Kenigsberga, danas poznatim kao Kalinjingrad, smješten
je na Baltiku između Litve i Poljske. Rijeka Pregolya prolazi kroz Kenigsberg te se u
unutrašnjosti grada rijeka razdvaja, to razdvajanje stvara mali otok unutar grada, kako bi
se svi kopneni dijelovi i time se omogućilo prometovanje, prvotno je izgrađeno sedam
mostova.

6 T. Carić, Optimizacija prometnih procesa, Fakultet prometnih znanosti; Sveučilište u Zagrebu, 2014.,str. 5

4
Slika 5: Kenigsberg i mostovi
Izvor: St. Clair, N.; Graph Theory Problems, Berkeley Math Circels, 2015, str. 1

Slika 5 prikazuje Kenigsberg (lijevo) i istaknutih sedam mostova (desno). Kako bi se


stanovnici zabavili izmislili su igru u kojoj trebaju prijeći preko svih sedam mostova
jednom tj. bez ponavljanja, pritom za dodatan izazov bio je da im je početna i krajnja točka
jednaka. 8

2.3 Eulerovo rješenje

Na problem sedam mostova odazvao se Leonhard Euler koji iznaša pretpostavka


da je izbor puta nebitan, nego je potrebno slijedno prijeći mostove. Takva pretpostavka
omogućuje da se uklone nepotrebna svojstva poput važnosti izbora početnog mosta.
Čvorom su predstavljane sve kopnene površine, dok su bridovi predstavljeni kao mostovi
time tvoreči matematičku strukturu spomenutog grafa. Do dolaska na čvor mora biti
preko brida tj. mosta, tako da tokom šetnje po grafu, broj dolaska na čvora, a da nije finalni
čvor jednak je broju puta kada se izlazi s čvora, tako da broj mostova koji dodiruju kopno
mora biti paran ako se most želi prijeći samo jednom. Polovina mostova biti će prijeđena
kada se ide od kopna, dok će druga polovina biti prijeđena kada se ide prema kopnu, s
time da je broj mostova neparan nemoguće je prijeći sve mostove samo jednom. Euler je
dao negativan odgovor prikazavši ovisnost stupnja čvora i šetnje po grafu gdje se brid
koristi samo jednom.
Takva šetnja moguća je samo ako je graf spojen i ako nijedan ili dva čvora imaju neparan

8 A. Bellew, Solving the Königsberg Bridge Problem, IB Mathematics HL, Internal Assessment,2017.,str 1.

5
stupanj. Eulerova šetnja ostvariva je ako se počinje i završava na čvoru s neparnim
stupnjem. Takvim negativnim odgovorom Euler postavlja temelje teorije grafova. 9

Slika 6: Eulerov graf


Izvor: DeLaunay, M., Crossing the Bridges: Eulerian Graph Theory, 2010. str. 5
Graf na slici 6 prikazuje Eulerov graf u kojem dokazuje kako je moguže izvesti obilazak
kada u sustavu ne postoji niti jedan čvor koji ima neparan stupanj tj ako ispunjava uvjet
za Eulerov krug. Također prikazano je kako graf sadrži paran broj čvorova s neparnim
brojem stupnjeva (sedam mostova) tako da uvjet za Eulerov krug nije ispunjen. Ako
početna točka nije ujedno jednaka krajnjoj točci, takvom prilagodbom problema, stvara
se mogućnost Eulerove staze. Uvjet za postojanjem takve staze proizlazi ako i samo ako
graf sadrži dva čvora neparnog stupnja s uvjetom da su oni početna ili krajnja točka ili graf
nema čvorove neparnog stupnja, pošto takvim načinom ne poštuje se pravilo problema,
rješenja nema.10 Sukladno tome formirana su tri pravila:

1. Ako je kopno povezano neparnim brojem mostova sa drugim kompnom onda


kružno putovanje koje prelazi svaki most točno jednom je nemoguće.
2. Ako za dva kopna broj mostova je neparan, tada putovanje koje prelazi svaki most
jednom moguće je ako je putovanje započeto u jednom, a završava na drugom
kopnu s neparnim brojem mosta.
3. Putovanje može početi i završiti na istom kopnu ako je broj mostova što spaja
kopna paran.11

9 A. Marjanović, Problem sedam mostova Koeningsberga, Zavrpni rad, Sveučilište u Splitu; Prirodoslovno-
matematički fakultet, 2012., str. 13.
10 I. Komar, ZIS i teorija grafova, Seminarski rad, Sveučilište u Zagrebu, Fakultet organizacije i informatike

Varaždin, 2011., str. 6


11 A. Begović, et al., Teorija grafova. Osnovni pojmovi u teoriji grafova. Primjena teorije grafova u prometu.,

Univerzitet u Sarajevu, 2014., str. 22.

6
2.3.1 Eulerov graf

Zatvorena šetnja na grafu G koja sadrži sve rubove grafa G naziva se Eulerovom
linijom, dok graf koji sadrži Eulerovu liniju naziva se Eulerov graf. Budući da su šetnje
uvijek povezane, Eulerova linija sadrži sve bridove grafa, stoga Eulerov graf spojen je za
sve osim izoliranih čvorova koje graf može sadržavati tj. graf mora sadržavati zatvorene
krugove između čvorova (slika 7), također ne-Eulerov graf može biti i Super-Eulerski graf
ukoliko sadrži Eulerski podgraf.
(slika 9).12

Slika 7: Eulerov graf sa povezanim čvorovima (a) i ne-Eulerov graf (b)


Izvor: Internet izvor: 3. Eulerian and Hamiltonian Graphs
http://compalg.inf.elte.hu/~tony/Oktatas/TDK/FINAL/Chap%203.PDF, pristupljeno 30.03.2019

Graf G može biti pod-Eulerskim grafom ako i samo ako graf G nije upotpunjen
bipartitnim grafom. Bipartitni graf je graf kojem se vrhovi mogu podijeliti na dva skupa
pri tome da sve veze iz jednog skupa prelaze u drugi. Slika 8 prikazuje bipartitni graf.

Slika 8: Bipartitni graf

12Internet izvor: 3. Eulerian and Hamiltonian Graphs


http://compalg.inf.elte.hu/~tony/Oktatas/TDK/FINAL/Chap%203.PDF, pristupljeno 30.03.2019.

7
Izvor: http://wiki.xfer.hr/grafovi_matching/

Slika 9. Super-Eulerski graf


Izvor: Internet izvor: 3. Eulerian and Hamiltonian Graphs
http://compalg.inf.elte.hu/~tony/Oktatas/TDK/FINAL/Chap%203.PDF, pristupljeno 30.03.2019

Budući da graf G sadrži trokut ima zatvorenu šetnju. Graf W spada pod najdulju zatvorenu
šetnju u grafu G, tada W obuhvaća i Eulerski podgraf G. Ukoliko ne, postoji da v nije
element W i v je susjedan čvoru u u W, uv pripada trokutu uvw, a ako niti jedan brid takvog
trokuta ne pripada grafu W, onda je W unija skupa {uv, vw, wu} koja sadrži šetnju dulju od
grafa W. Ako je uw element od W onda je (W – uw) U {uv, vw} što čini zatvorenu šetnju
dulju od W. Takva kontradikcija dokazuje da W obuhvaća zatvorenu šenjtu grafa G.13

2.3.2 Eulerov teorem

Ako i samo ako su svi vrhovi parnog stupnja neprazni povezani graf je Eulerov graf.
Kako je dokazana Eulerova tura, onda će svaki vrh u koji se uđe dati mogućnost izlaza što
znači da su stupnjevi svih bridova parni brojevi. Pretpostavka da je pseudograf povezan
te da su svi vrhovi parnog stupnja, neka je v vrh u grafu. Ako ima vrh ima i petlji koje treba
slijediti bez ponavljanja. Ako je broj vrhova u grafu barem jednak dva, postoji barem jedan
vrh v1 s kojim se povezuje. Nakon obilaska svih petlji ili bridova u vrhu v1 prelazimo na vrh
v2 . Pri svakom dolasku u novi vrh, obilaze se sve petlje, a onda se potom izlazi iz vrha, te
je uvijek moguće izaći iz vrha u kojeg se i ulazi, ako je stupanj svakog vrha paran broj. Uz
pretpostavku da je tura C1 zaokružena, moguće je vratiti se u vrh v i ako su svi bridovi

13Internet izvor: 3. Eulerian and Hamiltonian Graphs


http://compalg.inf.elte.hu/~tony/Oktatas/TDK/FINAL/Chap%203.PDF, pristupljeno 30.03.2019.

8
obiđeni zatvoren je krug. Ukoliko to nije moguće Eulerova tura je nepostojeća pa se
izbacuju iz grafa C1 svi bridovi koji su izolirani. Ako imamo graf G1 koji je graf G bez grafa
C1 i postupak se ponovi. Graf G povezan je sa grafom G1 i C1 sa zajedničkim vrhom u, onda
se iz vrha u kreće u turu C u G1 koja je kombinirana sa prethodnom turom, tako da se onda
kreće u v i vraća u u, gdje se nastavlja sa turom C1. Tako se stvara tura C2 koja sadrži više
uključenih bridova od ture C1, te se postupak ponavlja dok se ne iscpre svi vrhovi i bridovi
iz konačnog grafa G.14

2.4 Fleuryjev algoritam i rješenje Eulerovog problema

Fleuryjev algoritam koristi se za pronalaženje Eulerove ture tako da konstruira


Eulerovu stazu iz jedne točke pri odabiru sljedećeg koraka bira vezni brid neprijeđenog
podgrafa. Za ulaz se koristi povezani graf G ( V,E) koji sadrži sve bridove parnog stupnja,
a za izlaz daje Eulerovu turu u grafu G.15
Fleuryjev algoritam uspostavljen je tako da pruža metodu za pronalaženje Eulerove staze
unutar grafa tako da pretražuje je li graf eulerov, polu ili nijedno. Ukoliko postoje nema
neparan broj čvorova, počinje iz bilo kojeg čvora, ukoliko postoji dva čvora koja imaju
neparan broj bridova, počinje se iz jednog, a završava u drugome. Prate se bridovi kojima
se kreće kako bi se izbjeglo ponavljanje. Ukoliko most postoji onda se prelazi preko njega
tek kada su svi ostali bridovi prijeđeni na jednoj strani.16

Slika 10: Graf koji sadrži most


Izvor: DeLaunay, M., Crossing the Bridges: Eulerian Graph Theory, 2010. str. 5

14 B. Divjak, et al., Diskretna matematika s teorijom grafova, Fakultet organizacije i informatike Sveučilišta
u Zagrebu, Varaždin, 2005., str. 202.
15 Ibidem, str. 214.

16 DeLaunay, M., Crossing the Bridges: Eulerian Graph Theory, 2010. str. 5

9
Fleuryjev algoritam može se očitati kao: Ulaz označava Eulerov graf G, u ovom slučaju
ulaz predstavlja unos broja čvorova i bridova, Izlaz postojanje Eulerove ture C na grafu
G, gdje u rezultatu izvođenja prikazano na slici 11. kako za problem sedam mostova nema
riješenja. Korak 1 označavao bi izabiranje proizvoljnog vrha v, te se postavlja kao tekući
vrh. Korak 2 proizvoljno se označava brid e koji je u vezi s izabranim vrhom, te brid nije
rezni i dodaje ga se na stazu C. Ako nema drugih mogućnosti za odabrani brid, onda se za
odabrani vrh uzima idući vrh s drugog kraja odabranog brida. Korak 3 prijeđeni brid se
briše, te se prelazi na idući tekući tj. ponavlja se Korak 2, ukoliko nema preostalih bridova
Kraj.

Slika 11: Rezultat izvođenja program


Izvor: Izrada autora (kôd se nalazi u prilogu)

10
ZAKLJUČAK

Eulerov uspjeh pri rješavanju problema Sedam mostova dovelo je do postavljanja


temelja jednog novog znanstvenog područja. Primjena teorije grafova mijenja tok ne
algebarske i geometrijske problematike u matematici.

11
Popis literature

1. Begović, A., et al., Teorija grafova. Osnovni pojmovi u teoriji grafova. Primjena
teorije grafova u prometu., Univerzitet u Sarajevu, 2014., str. 22.
2. Bellew, A., Solving the Königsberg Bridge Problem, IB Mathematics HL, Internal
Assessment,2017.,str 1.
3. Carić, T., Optimizacija prometnih procesa, Fakultet prometnih znanosti; Sveučilište
u Zagrebu, 2014.
4. DeLaunay, M., Crossing the Bridges: Eulerian Graph Theory, 2010.
5. Divjak, B., et al., Diskretna matematika s teorijom grafova, Fakultet organizacije i
informatike Sveučilišta u Zagrebu, Varaždin, 2005.
6. DeLaunay, M., Crossing the Bridges: Eulerian Graph Theory, 2010.
7. Galac, D., Izrada multimodalnog planera putovanja za područje grada Zadra,
Sveučilište u Zagrebu, Fakultet Prometnih znanosti, Zagreb, 2015.
8. Komar, I., ZIS i teorija grafova, Seminarski rad, Sveučilište u Zagrebu, Fakultet
organizacije i informatike Varaždin, 2011.
9. Kopić, M.,Klobučar, A.; Mostovi Kaliningrada nekad i sada, OSJEČKI MATEMATIČKI
LIST 7, Odjel za matematiku, Osijek, 2007.
10. Marjanović, A., Problem sedam mostova Koeningsberga, Zavrpni rad, Sveučilište u
Splitu; Prirodoslovno-matematički fakultet, 2012.
11. Mateljan, et al., Teorija grafova i linearno programiranje, Elektrotehnički fakultet
u Sarajevu, 2015.
12. Vasudev. C., Graph Theory with Application, New Delhi, New Age International
Ltd., 2006.

Internet izvori:
13. Internet izvor: 3. Eulerian and Hamiltonian Graphs
http://compalg.inf.elte.hu/~tony/Oktatas/TDK/FINAL/Chap%203.PDF, pristupljeno
30.03.2019

12
Prilog
#include <iostream>
#include <string.h>
#include <algorithm>
#include <list>
#include<stdio.h>
int n;
using namespace std;
//klasa Euler sa svim metodama
class Euler
{
int V;
list<int> *adj;
public:
Euler(int V) { this->V = V; adj = new list<int>[V]; }
~Euler() { delete [] adj; }

void addEdge(int u, int v) { adj[u].push_back(v); adj[v].push_back(u); }


void rmvEdge(int u, int v);
void printEulerTour();
void printEulerUtil(int s);
int DFSCount(int v, bool visited[]);
bool isValidNextEdge(int u, int v);
int iseuler(int[]);
};
//ispis eulerove staze
void Euler::printEulerTour()
{
int u = 0;
for (int i = 0; i < V; i++)
if (adj[i].size() & 1)
{ u = i; break; }
printEulerUtil(u);
cout << endl;
}

void Euler::printEulerUtil(int u)
{
list<int>::iterator i;
for (i = adj[u].begin(); i != adj[u].end(); ++i)
{
int v = *i;
if (v != -1 && isValidNextEdge(u, v))
{
cout << u << "-" << v << " ";
rmvEdge(u, v);
printEulerUtil(v);
}
}
13
}
//provjera za postojeci iduci brid
bool Euler::isValidNextEdge(int u, int v)
{
int count = 0;
list<int>::iterator i;
for (i = adj[u].begin(); i != adj[u].end(); ++i)
if (*i != -1)
count++;
if (count == 1)
return true;

bool visited[V];
memset(visited, false, V);
int count1 = DFSCount(u, visited);
//poziv za micanje prijedenog brida
rmvEdge(u, v);
memset(visited, false, V);
int count2 = DFSCount(u, visited);
//dodavanje iduceg brida
addEdge(u, v);

return (count1 > count2)? false: true;


}
//funkcija za micanje bridova
void Euler::rmvEdge(int u, int v)
{
list<int>::iterator iv = find(adj[u].begin(), adj[u].end(), v);
*iv = -1;

list<int>::iterator iu = find(adj[v].begin(), adj[v].end(), u);


*iu = -1;
}
//brojac
int Euler::DFSCount(int v, bool visited[])
{
visited[v] = true;
int count = 1;

list<int>::iterator i;
for (i = adj[v].begin(); i != adj[v].end(); ++i)
if (*i != -1 && !visited[*i])
count += DFSCount(*i, visited);
return count;
}
//provjera brojaca
//provjera postoji li ili ne staza/setnja
int Euler::iseuler(int a[])
{

14
int count = 0;
for(int i=0;i<n;i++){
if(a[i] % 2 != 0)
count++;
}
if(count == 0){
cout<<"Eulerova staza postoji:\n";
return 1;
}
else if(count == 2){
cout<<"Eulerova setnja postoji:\n";
return 1;
}
else{
cout<<"Ne postoji eulerova staza ili setnja:'\n\n";
return -1;
}
}
int main()
{
int i,j,v1,v2,Edges;
cout<<"\n Unesi broj cvorova na grafu: ";
cin>>n;
Euler g1(n);
int a[n] = {0};
bool graph1[10][10];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
graph1[i][j]=0;
cout<<"\n Unesi broj bridova: ";
cin>>Edges;
for(i=1;i<=Edges;i++)
{
cout<<"\n Unesi bridove: ";
cin>>v1>>v2;
graph1[v1][v2]=1;
graph1[v2][v1]=1;
g1.addEdge(v1, v2);
a[v1]++;
a[v2]++;
}
cout<<"\n";
if(g1.iseuler(a) == 1)
g1.printEulerTour();
return 0;
}
Prema uzoru na Fleuryjev algoritam, autor: smarth-p (https://github.com/samarth-
p/Euler-and-Hamiltonian-Path)

15

You might also like