===== 11. Prioritní fronta, halda. Příklad použití prioritní fronty při hledání nejkratší cesty v grafu =====
* prezentace: {{courses:b0b36prp:lectures:b0b36prp-lec11-slides.pdf|}}
* zkrácená verze: {{courses:b0b36prp:lectures:b0b36prp-lec11-handout.pdf|}}
* zkrácená verze 2x2: {{courses:b0b36prp:lectures:b0b36prp-lec11-handout-2x2.pdf|}}
* zkrácená verze 3x3: {{courses:b0b36prp:lectures:b0b36prp-lec11-handout-3x3.pdf|}}
* přiložené demonstrační programy: {{courses:b0b36prp:lectures:b0b36prp-lec11-codes.zip|}}
--- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2025/09/19 22:07//
--- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2022/12/10 23:30// **Aktualizace**: Přidání tdijkstra binárky pro OS X (intel and arm).
--- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2017/12/23 08:09// **Aktualizace**: Zjednoušení návratové hodnoty funkce ''dijkstra_solve()'' a zpřehlednění podmínky v ''pq_down()''.
--- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2018/01/08 08:48// **Aktualizace**: tdijkstra verze 2.3.6. - fix segfault při pokusu testovat řešení většího grafu než je vstupní graf
--- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2018/01/08 08:48// **Aktualizace**: tdijkstra verze 2.3.7. - fix návrat 0 při chybě
--- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2022/12/03 23:48//
**Dotazy z přednášky**
Q: //Jak se používá ''fflush()''?//
Funkce ''int fflush(FILE *stream)'' slouží k předání dat bufferu (vyrovnávací paměti) operačnímu systému (OS), např. při nastavení bufferu souboru (streamu/proudu) funkcí (''setbuf()''). Nemění stav souboru, data jsou předána nižší zapisovací funkci. OS může data dále bufferovat.
Volání funkce ''int fsync(int fd)'' z knihovny ''unistd.h'' je systémové volání, které dává pokyn OS, aby data byla zapsaná na fyzické zařízení. Funkce pracuje s ''fd'' -- //celočíselným file deskriptorem//, který je možné získat z proudu funkcí ''int fileno(FILE *stream)'' ze standardní knihovny ''stdio.h''.