Vodič · Algoritmi · Grafovi i stabla

Grafovi i stabla – vodič kroz lekcije

Graf je skup čvorova povezanih granama: mapa gradova, mreža računara, lavirint, raspored zadataka. Grafovi su najzastupljenija tema na okružnom i državnom takmičenju i na SIO.

Vodič ide od zapisivanja grafa i obilazaka BFS i DFS, preko stabala i DAG-ova, do najkraćih puteva, minimalnih stabala i naprednih algoritama. Svaka lekcija ima kompletne programe u C++-u i zadatke sa rešenjima.

  • 7–8. razred i srednja škola
  • C++
  • Priprema za takmičenja
Kako izabrati algoritam: sve grane iste dužine → BFS; težine bez negativnih → Dijkstra; negativne težine → Bellman-Ford; svi parovi i mali graf → Floyd-Warshall; graf bez ciklusa → DP po topološkom redosledu; povezati sve najjeftinije → Prim ili Kruskal.

1 Osnove i pretrage

Pojmovi, zapisivanje grafa i dva osnovna obilaska – temelj svih ostalih algoritama.

2 Stabla

Graf bez ciklusa: obilazak, podstabla, prečnik i binarna stabla.

3 Usmereni grafovi bez ciklusa (DAG)

Redosled zadataka sa zavisnostima i dinamičko programiranje po grafu.

4 Najkraći putevi

Kada grane imaju dužine: od jednog čvora i između svih parova.

5 Minimalna razapinjuća stabla

Najjeftinije povezivanje svih čvorova.

6 Napredne teme

Za državno takmičenje i SIO.

Predloženi redosled

  1. Uvod u grafove
  2. BFS i DFS
  3. Zadatak: Broj ostrva
  4. Zadatak: Najkraći put u lavirintu
  5. Stabla
  6. Binarna stabla i BST
  7. Topološko sortiranje
  8. Otkrivanje ciklusa
  9. Najduži put u DAG-u
  10. DP na DAG-u
  11. Dijkstrin algoritam
  12. Bellman-Ford i Floyd-Warshall
  13. Primov algoritam
  14. Kruskalov algoritam
  15. Eulerovi putevi
  16. Mostovi i artikulacioni čvorovi
  17. Komponente jake povezanosti

Korisni spoljni resursi

Mapa učenja — Grafovi i stabla