zpět
Cvičení 6 - Grafy
Zadání cvičení:
- Prostudujte si ukázkovou implementaci neorientovaného grafu využívající matici sousednosti.
- Jelikož implementujeme neorientovaný graf, jakou důležitou vlastnost bude mít matice sousednosti?
- V souboru GramphInMatrix.h se nacházejí dokumentační komentáře zpracovatelné nástrojem Doxygen. Podobně strukturovanými komentáři budete komentovat třídy, struktury a funkce ve svých projektech.
- Vrcholy jsou v implementaci reprezentovány čísly 0 až n-1, kde n je počet vrcholů grafu.
- Mezi vrcholy a a b je hrana právě tehdy, když je v matici sousednosti na indexech a b a b a uložena hodnota 1.
- Implementujte konstruktor, kterému předáte jako parametr řetězec reprezentující cestu k souboru a následně jej ze souboru načte.
- V souboru se na prvním řádku nachází přírozené číslo n reprezentující počet vrcholů. Na následujících řádcích se nachází několik dvojic čísel a b reprezentující hranu v grafu mezi vrcholy a a b.
- Jelikož předem neznáte počet hran, je třeba číst soubor až do konce, v logické podmínce využijte metodu eof().
- Pro každý vrchol vypište jeho sousedy.
- Implementujte funkci, která pro daný uzel vypočítá jeho stupeň. Funkce se bude hodit při řešení dalších úloh.
- Vypočtěte a vypište stupeň všech vrcholů.
- Implementujte funkci, která rozhodne, zdali je graf kompletní.
- Implementujte funkci, která rozhodne, zdali má graf strukturu hvězdy.
Šablona:
GraphInMatrix.h GraphInMatrix.cpp cviceni6.cpp
Ukázkové vstupní soubory:
graph1.txt graph2.txt graph3.txt graph4.txt
Řešení:
GraphInMatrix-reseni.cpp