前式鏈向星

2021-08-22 05:54:12 字數 1117 閱讀 9094

**:

稍作修改

有的時候有的圖可能比較稀疏而且點數較多,鄰接矩陣存不下,所以就要用到鄰接表。鄰接錶用vector陣列比較方便,但是vector比較慢。所以就有了鏈式向前星。

#include

#include

#include

using namespace std;

//鏈式向前星其實就是有n條鍊錶,每條鍊錶存的是所有相同起點的邊。

const int maxn=1100;//點數

const int maxm=11000;//邊數

struct xx

node[maxm];//每個結點存一條邊,next表示與當前邊起點一樣的另一條邊在node的陣列中的位置。to表示這條邊的終點,n表示這條邊的權值。所有的邊都將存在這個node陣列中。

int head[maxn];//head[i]表示從i點出發的鍊錶的第乙個節點在node陣列中的位置。

int num=0;//當前已有邊的個數。

void add(int from,int to,int n)

void use(int i)//遍歷起點為i的鍊錶

int i;

cin>>i;

use(i);

}自己寫的**,看著舒服

#include #include #include #include #define inf 0x3f3f3f3f

using namespace std;

struct node

edge[10010];

int n,m;

int num=0;//記錄邊的總數

int vis[10010],head[10010];

int add(int from,int to,int w)//起點、終點、價值

void show() }}

int main()

show();

return 0;

}

前向星和鏈式前向星

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

前向星和鏈式前向星

前向星 前向星是一種特殊的邊集陣列,我們把邊集陣列中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序,並記錄下以某個點為起點的所有邊在陣列中的起始位置。鏈式前向星 鏈式前向星其實就是靜態建立的鄰接表,時間效率為o m 空間效率也為o m 遍歷效率也為o m next表示當前結點的下...

前向星和鏈式前向星

1 前向星 前向星是以儲存邊的方式來儲存圖,先將邊讀入並儲存在連續的陣列中,然後按照邊的起點進行排序,這樣陣列中起點相等的邊就能夠在陣列中進行連續訪問了。它的優點是實現簡單,容易理解,缺點是需要在所有邊都讀入完畢的情況下對所有邊進行一次排序,帶來了時間開銷,實用性也較差,只適合離線演算法。圖一 2 ...