建图(图的存储结构)

图可以看作一般化的树

建图(图的存储结构)

以存点方式存储图

邻接矩阵(适用于稠密图)

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++;//更新点集数组,与头插法更新头指针等价
}
posted @   椰萝Yerosius  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示