鏈式前向星存圖
head和next的作用
其實這倆本質是一樣的,next就是把一個又一個過氣(?)head自個兒存起來以便查詢。
模擬一遍就懂了的東西。
4⃣️的,地瓜就是一個愛手寫的孩子……
看下模擬過程基本就很容易理解
···
代碼
初始化+結構體:
#define maxn 10000;//題目給的n最大值
#define maxm 1000;//m最大值
int n,m;//n個點,m條邊;
int cnt;//邊的編號;
head[maxn];
struct Edge{
int to;
int w;
int next;
}e[2*maxm+5];//無向圖,有向圖應該[maxm+5]就夠了
存邊:
void addedge(int u,int v,int w){
e[cnt].to=v;
e[cnt].w=w;
e[cnt].next=head[u];//此時head中的編號給next了;
head[u]=cnt++;//接收新的值
};
遍歷:
for(int i=0;i<n;i++)
{
for(int j=head[i];i;i=e[i].next)
{
一 通 操 作 ;
//這裏一般是spfa找最短路啥的,會寫一篇新的bo
}
}
ps:鏈式前向星明明是起碼半年前就會的東西,現在又忘了以至於要重新寫一遍,果然不愧是廢物地瓜🍠,誰見了都會流淚。