Třída reprezentující neorientovaný graf bez smyček.
...
#include <tdd_code.h>
Třída reprezentující neorientovaný graf bez smyček.
◆ addEdge()
bool Graph::addEdge |
( |
const Edge & |
edge | ) |
|
Přidá hranu do grafu.
Smyčky a duplicitní hrany jsou ignorovány. Pokud uzel definovaný hranou neexistuje, tak bude vytvořen.
- Parametry
-
[int] | edge Hrana, která bude přidána do grafu. |
- Návratová hodnota
- True pokud byla hrana do grafu přidána, jinak false.
◆ addMultipleEdges()
void Graph::addMultipleEdges |
( |
const std::vector< Edge > & |
edges | ) |
|
Naplní graf z vektoru hran.
Ignoruje duplicitní hrany a smyčk Pokud uzel definovaný hranou neexistuje, tak bude vytvořen.
- Parametry
-
[in] | edges | Vektor obsahující hrany. |
◆ addNode()
Node * Graph::addNode |
( |
size_t |
nodeId | ) |
|
Přidá uzel s daným id do grafu a vrátí ukazatel na vytvořený uzel.
Pokud uzel existuje vrátí nullptr. Volající se nestárá o mazání uzlu.
- Parametry
-
[in] | nodeId | Jednoznačný identifikátor uzlu |
- Návratová hodnota
- ukazatel na uzel nebo nullptr
◆ coloring()
Provede obarvení uzlů v grafu.
Obarvení je uloženo v atributu color v daném uzlu. Nesmí se použít více než graphDegree + 1 barev. Jaký algoritmus pro barvení zvolíte je na Vás. Může být použita heuristika nepřiřazující minimální počet barev, ale musí být splněny testy.
Barvením se rozumí, že přiřadíte každému uzlu barvu tak, že sousední uzly nemají stejnou barvu.
◆ containsEdge()
bool Graph::containsEdge |
( |
const Edge & |
edge | ) |
const |
Zjistí, zda hrana existuje v grafu.
- Parametry
-
edge | hrana, která nás zajímá |
- Návratová hodnota
- true pokud hrana existuje, jinak false
◆ edgeCount()
size_t Graph::edgeCount |
( |
| ) |
const |
- Návratová hodnota
- počet hran v grafu
◆ edges()
std::vector< Edge > Graph::edges |
( |
| ) |
const |
- Návratová hodnota
- vektor všech hran v grafu
◆ getNode()
Node * Graph::getNode |
( |
size_t |
nodeId | ) |
|
Vrátí ukazatel na uzel s daným id.
- Parametry
-
- Návratová hodnota
- Ukazatel na uzel nebo nullptr, pokud uzel neexistuje.
◆ graphDegree()
size_t Graph::graphDegree |
( |
| ) |
const |
- Návratová hodnota
- maximální stupeň uzlu v grafu
◆ nodeCount()
size_t Graph::nodeCount |
( |
| ) |
const |
- Návratová hodnota
- počet uzlů v grafu
◆ nodeDegree()
size_t Graph::nodeDegree |
( |
size_t |
nodeId | ) |
const |
stupeň uzlu
- Parametry
-
- Návratová hodnota
- počet hran, které mají tento uzel za svůj jeden koncový bod
- Výjimky
-
out_of_range | pokud uzel v grafu neexistuje |
◆ nodes()
std::vector< Node * > Graph::nodes |
( |
| ) |
|
- Návratová hodnota
- vektor ukazatelů na všechny uzly v grafu
◆ removeEdge()
void Graph::removeEdge |
( |
const Edge & |
edge | ) |
|
odstraní hranu z grafu
- Parametry
-
[in] | edge | hrana, která má být odstraněna |
- Výjimky
-
out_of_range | pokud hrana v grafu neexistuje |
◆ removeNode()
void Graph::removeNode |
( |
size_t |
nodeId | ) |
|
odstraní uzel z grafu
- Parametry
-
[in] | nodeId | id uzlu, který má být odstraněn |
- Výjimky
-
out_of_range | pokud uzel s daným id v grafu neexistuje |
Dokumentace pro tuto třídu byla generována z následujících souborů: