Prakticke aspekty vývoje softwaru: Projekt 1 – Testování  1.0
Projekt zaměřený na osvojení praktik testování včetně technik test driven development, black box testing a white box testing.
Veřejné metody
Dokumentace třídy Graph

Třída reprezentující neorientovaný graf bez smyček. ...

#include <tdd_code.h>

Veřejné metody

 Graph ()
 konstruktor prázdného grafu
 
 ~Graph ()
 destruktor grafu
 
std::vector< Node * > nodes ()
 
std::vector< Edgeedges () const
 
NodeaddNode (size_t nodeId)
 Přidá uzel s daným id do grafu a vrátí ukazatel na vytvořený uzel. ...
 
bool addEdge (const Edge &edge)
 Přidá hranu do grafu. ...
 
void addMultipleEdges (const std::vector< Edge > &edges)
 Naplní graf z vektoru hran. ...
 
NodegetNode (size_t nodeId)
 Vrátí ukazatel na uzel s daným id. ...
 
bool containsEdge (const Edge &edge) const
 Zjistí, zda hrana existuje v grafu. ...
 
void removeNode (size_t nodeId)
 odstraní uzel z grafu ...
 
void removeEdge (const Edge &edge)
 odstraní hranu z grafu ...
 
size_t nodeCount () const
 
size_t edgeCount () const
 
size_t nodeDegree (size_t nodeId) const
 stupeň uzlu ...
 
size_t graphDegree () const
 
void coloring ()
 Provede obarvení uzlů v grafu. ...
 
void clear ()
 Smazání všech uzlů a hran v grafu.
 

Detailní popis

Třída reprezentující neorientovaný graf bez smyček.

Dokumentace k metodám

◆ 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]edgesVektor 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]nodeIdJednoznačný identifikátor uzlu
Návratová hodnota
ukazatel na uzel nebo nullptr

◆ coloring()

void Graph::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
edgehrana, 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
[in]nodeIdId uzlu.
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
[in]nodeIdid uzlu
Návratová hodnota
počet hran, které mají tento uzel za svůj jeden koncový bod
Výjimky
out_of_rangepokud 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]edgehrana, která má být odstraněna
Výjimky
out_of_rangepokud hrana v grafu neexistuje

◆ removeNode()

void Graph::removeNode ( size_t  nodeId)

odstraní uzel z grafu

Parametry
[in]nodeIdid uzlu, který má být odstraněn
Výjimky
out_of_rangepokud uzel s daným id v grafu neexistuje

Dokumentace pro tuto třídu byla generována z následujících souborů: