图的存储
以存点方式存储图
邻接矩阵
vector<vector<int>>v(MAX,vector<int>(MAX,0));
邻接表
unordered_map<int,vector<int>> head;
以存边方式存储图
链式前向星(静态链表存储邻接表)
int h[MAX],num;//head:点集,用于存储以该点为尾的最后一条边 num:边的序号
struct{int f,t,w;//数据域:from to weightint n;//指针域:next:存储以该点为尾的上一条边
}e[MAX<<1];//edge:边集
void init(){//初始化memset(h,-1,sizeof h),memset(e,-1,sizeof e);num=0;//初始化边的序号
}
void add(int f,int t,int w){//加边操作e[num].f=f,e[num].t=t,e[num].w=w;e[num].n=head[f];//边之间相互连接 以-1为结束标志head[f]=num++;//头插法
}