建图(图的存储结构)
图可以看作一般化的树
建图(图的存储结构)
以存点方式存储图
邻接矩阵(适用于稠密图)
vector<vector<int>>v(MAX,vector<int>(MAX,0));
邻接表
unordered_map<int,vector<int>> head;
以存边方式存储图
链式前向星(静态链表版邻接表,常用)
前向星:指的是存储节点的出度边,其形状类似一个星星。
//以DAG带权图为例
int cnt=0;//cnt:当前边序号工作指针,初始化为0
struct vertex{//点集
int in,out;//入度,出度
int e=-1;//edge:存储该点最后一条出度边的序号,默认设置-1为结束标志
}v[MAXV];
struct edge{//边集
int u,v,w;//from,to,weight
int n=-1;//next:存储上一条同为该点出度边的序号,默认设置-1为结束标志
}e[MAXE];//DAG中MAXE为MAXV的2倍
void add(int U,int V,int W){//加边操作
e[cnt].u=U,e[cnt].v=V,e[cnt].w=W;
v[U].out++,v[V].in++;
e[cnt].n=v[U].e;//连接上一条边,与头插法先连接首元结点等价 以-1为结束标志
v[U].e=cnt++;//更新点集数组,与头插法更新头指针等价
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具