图论相关知识(DFS、BFS、拓扑排序、最小代价生成树、最短路径)

前向星:静态链表,即用数组实现邻接表的功能。对于每个顶点,前向星存储的是该顶点的邻接边而非邻接点,head[maxn]存储的是顶点信息,edge[maxm]存储的是顶点对应的边的信息

图论相关知识(DFS、BFS、拓扑排序、最小代价生成树、最短路径)

图论相关知识(DFS、BFS、拓扑排序、最小代价生成树、最短路径)

struct Edge { int to;///某个顶点u的邻接点 int next;///顶点u的下一条邻接边的编号 int val;///该邻接边的权值 Edge(){} Edge(int _to,int _next,int _val){ to=_to;next=_next;val=_val; } edge[maxm*2]; //无向图,建图时边的个数为两倍 int head[maxn],tot=0; ///head用来表示以i为起点的第一条边存储的位置,tot读入边的计数器 void add_edge(int from,int to,int valt)///在图中添加边,O(M) { edge[tot]=Edge(to,head[from],valt); head[from]=tot++; } void read() //遍历所有边,O(N*M) { for(int i=0; i<=n; i++) for(int j=head[i]; j!=-1; j=edge[j].next) }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdszy.html