图中的容易混淆的几个重要的概念:
完全图:有n(n-1)/2条边的无向图 称为完全图。
有向完全图:具有n(n-1)条边的有向图称为有向完全图。
稀疏图:边数比较少的图。
稠密图:边数比较多的图。
连通图:在无向图中,任意的两个顶点都是有路径的。
强连通图:在有向图中,任意的两个顶点都是有路径的。(即就是vi到vj有路径,vj到vi也有路径)
完全图一定是连通图,但是连通图却不一定是完全图。
图的存储方式:
邻接矩阵:就是将图中的边的关系存储在矩阵中。
template<typename V,typename W>
class GraphMartix
{
public:
GraphMartix(V* arr,size_t size,bool isDirection = false)
:_size(size)
,_isDirection(isDirection)
{
//申请结点数组
_vertex = new V[_size];
//申请矩阵
_martix = new W*[_size];
for(int i = 0; i < _size; ++i)
{
_martix[