有向图的二元组表示:<first,second>表示从first顶点指向seoncd顶点

C++实现由二元组建立图的邻接表_邻接表

有向图可以用二元组<1,2>,<2,3>,<3,1>表示

所以,可以用二元组集合来建立邻接表表示图

class gra
{
private:
vector<vector<int>>edges;//edges表示图的邻接表
public:
//由二元组集合nums建立图的邻接表
void adjGra(int size,vector<vector<int>>&nums)//size表示顶点数
{
  edges.resize(size+1);//下标从1开始
  for (const auto &n:nums)//遍历二元组
  {
     edges[n[0]].push_back(n[1]);//edges动态二维数组的行表示顶点,列表示邻接点,因为是动态添加,所以可以看成邻接表
  }
}

}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

C++实现由二元组建立图的邻接表_职场和发展_02

 

C++实现由二元组建立图的邻接表_邻接表_03