鏈式前向星模板

2022-05-01 23:12:19 字數 663 閱讀 4803

整理一下,按邊儲存的結構都可以用此儲存。

其中edge[i].to表示第i條邊的終點,edge[i].next表示與第i條邊同起點的下一條邊的儲存位置,edge[i].w為邊權值.

另外還有乙個陣列head,它是用來表示以i為起點的第一條邊儲存的位置,實際上你會發現這裡的第一條邊儲存的位置其實

在以i為起點的所有邊的最後輸入的那個編號.

head陣列一般初始化為-1,對於加邊的add函式是這樣的:

邊是反向連線的,head[u]指向u連線的最後一條邊的e索引,而nxt指的是e陣列中的索引。

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8 typedef long

long

ll;9

const

int maxn=1e5+3;10

struct

edgee[maxn];

15int

head[maxn],cnt;

16void add_edge(int u,int v,int w)

22int

main()

27 }

鏈式前向星(模板)

一種非常厲害的存圖的資料結構!本質 模擬鍊錶的操作,鏈式儲存圖。2,3都可以模擬鍊錶的操作,替代鍊錶 1 二維陣列存圖 map x y 一維代表出發點,二維代表它所連線的所有點。不連線設為inf 2 鏈式前向星存圖 head x 相當於一維代表了出發點,之後t i next一條鏈相當於二維代表了所有...

前向星和鏈式前向星(詳解 模板)

前向星是一種特殊的邊集陣列,我們把邊集陣列中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序,並記錄下以某個點為起點的所有邊在陣列中的起始位置和儲存長度,那麼前向星就構造好了。用len i 來記錄所有以i為起點的邊在陣列中的儲存長度。用head i 記錄以i為邊集在陣列中的第乙個儲...

前向星和鏈式前向星

我們首先來看一下什麼是前向星.前向星是一種特殊的邊集陣列,我們把邊集陣列中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序,並記錄下以某個點為起點的所有邊在陣列中的起始位置和儲存長度,那麼前向星就構造好了.用len i 來記錄所有以i為起點的邊在陣列中的儲存長度.用head i 記...