Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/filip-kustura/cpp-teorija-grafova
Rješenje konkretnog problema iz teorije grafova koje još zadovoljava zadanu gornju ogradu na vremensku složenost. Problem sam riješio u programskom jeziku C++ korištenjem algoritma pretraživanja u širinu. Nastalo u prosincu 2021. kao domaća zadaća iz redovnog kolegija Oblikovanje i analiza algoritama. Prezentirano u siječnju 2022.
https://github.com/filip-kustura/cpp-teorija-grafova
breadth-first-search cpp graph-algorithms graph-theory time-complexity-analysis
Last synced: about 1 month ago
JSON representation
Rješenje konkretnog problema iz teorije grafova koje još zadovoljava zadanu gornju ogradu na vremensku složenost. Problem sam riješio u programskom jeziku C++ korištenjem algoritma pretraživanja u širinu. Nastalo u prosincu 2021. kao domaća zadaća iz redovnog kolegija Oblikovanje i analiza algoritama. Prezentirano u siječnju 2022.
- Host: GitHub
- URL: https://github.com/filip-kustura/cpp-teorija-grafova
- Owner: filip-kustura
- Created: 2022-10-17T11:23:01.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-17T17:38:14.000Z (about 2 years ago)
- Last Synced: 2024-09-11T03:09:11.430Z (4 months ago)
- Topics: breadth-first-search, cpp, graph-algorithms, graph-theory, time-complexity-analysis
- Language: C++
- Homepage:
- Size: 105 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Problem glasi: **Za zadani povezani neusmjereni graf i njegov brid _e_ odrediti pripada li _e_ ciklusu ili ne. Složenost, uz standardne oznake, najviše _O(m + n)_.** (_m_ je broj bridova, a _n_ broj vrhova grafa)
_C++_ program koji predstavljaja rješenje problema realiziran je kroz tri detaljno komentirane datoteke: _graph.h_ (sučelje), _graph.cpp_ (implementacija sučelja) i _main.cpp_ (klijentski program).
Dostupna je i _PowerPoint_ prezentacija rješenja.
#### NAPOMENE:
- U prve dvije datoteke (_graph.h_ i _graph.cpp_) definiram i implementiram strukturu koju koristimo, a to je **graf**.
- U trećoj datoteci (_main.cpp_) iz tekstualne datoteke _data.txt_ učitava se graf, odnosno broj njegovih vrhova te bridovi (dvočlani skupovi vrhova).
- Alternativno, graf je moguće, naravno, učitati i manje elegantnim putem, direktno u samom _main_-u. Taj dio sam zakomentirao.
- Program je moguće dobiti zajedničkim _kompajliranjem_ i _linkanjem_ datoteka _main.cpp_ i _graph.cpp_.
- Brid grafa za koji želimo utvrditi pripada li ciklusu ili ne učitavamo putem komandne linije, prilikom pokretanja programa.#### UPUTE (opis testnih podataka):
- Koristi se tekstualna datoteka _data.txt_.
- U prvom retku datoteke nalazi se **samo** _integer_ _V_ koji predstavlja broj vrhova grafa. Vrhovi grafa indeksirani su brojevima _0, ... , V-1_.
- U svakom idućem retku datoteke nalaze se samo dva _integera_ **strogo manja od _V_**, međusobno odvojena razmakom. Oni predstavljaju brid koji dodajemo grafu.
- Korisnik treba paziti da u tekstualnoj datoteci ne unese neki brid više od jednom (ovome je, naravno, moguće doskočiti u implementaciji, no time se nisam zamarao).