概念:图是由定点集合和定点间关系组成的数据结构。
有向图:在有向图里面的\A,C和C,A是不同的两个边,即在图里面的边是有方向的。
无向图:在无向图里面的A,C和C,A是相同的一条边,即在无向图里面的边是没有方向之分的。
定点的度:定点的度是指与定点相关的边的个数。
重点
- 邻接矩阵方式存储图
- 邻接链表方式存储图
邻接矩阵
无向图:
有向图:
代码实现:
template<class V, class W, bool flag = false>
class mgraph{
public:
mgraph(V* arr, size_t size)
:_flag(flag)
, _s(arr, arr + size)
{
edge.resize(size);
for (size_t i = 0; i<size; i++)
edge[i].resize(size);
}
int GetIndex(const V& v1){
int i = 0;
for (; i<_s.size(); ++i){
if (_s[i] == v1)
return i