鏈式前項星

2021-10-25 05:35:43 字數 675 閱讀 8442

存圖,存鍊錶的時候都一般會使用這個結構體陣列來實現資料的儲存。

結構體實現:

struct eedge[max_size]

;// edge[tot] 是乙個空節點

int tot,head[max_size]

;// tot是記憶體池指標,指向的是最近的乙個還沒有被使用的記憶體區域

// head陣列裡面裝的是下標對應的edge記憶體區塊的序號(對應到的是在edge陣列中的下標)

插入演算法實現:

void

add(

int u,

int v,

int w)

// u是邊的起點,v是邊的終點,w是邊的權值

儲存如下的乙個的時候:

1| | |

2 4 7

| | | |

8 5 3 6|9

在鏈式前項星的儲存結構中如圖所示:

1: 2 4 7 -1

2: 8 5 -1

3:-1

4:3 6 -1

5:-1

6:9 - 1

7:-1

8:-1

9:-1

每個節點做出一條鍊錶,鍊錶中的資料即為這個節點可以一步走到的節點,結束就以-1進行結尾。

拓撲排序 鏈式前項星 (教材版本實現)

include include include include include include include include define fast ios sync with stdio false define ll long long using namespace std const in...

鏈式向前星

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

鏈式前向星

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