有的時候有的圖可能比較稀疏而且點數較多,鄰接矩陣存不下,所以就要用到鄰接表。鄰接錶用vector陣列比較方便,但是vector比較慢。所以就有了鏈式向前星。
#include
#include
#include
using namespace std;
//鏈式向前星其實就是有n鍊錶,每條鍊錶存的是所有相同結點的邊。
const int maxn=1100;//點數
const int maxm=11000;//邊數
struct xx
node[maxm];//每個結點存一條邊,next表示與當前邊起點一樣的另一條邊在弄的陣列中的位置。to表示這條邊的終點,n表示這條邊的權值。
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);
}
鏈式向前星(陣列模擬鄰接表)
有關樹的經常需要存圖,vector陣列比較方便,不過有些題卡stl,就很容易t。所以鏈式向前星就非常重要了。這幾天能不用鏈式向前星就不用,因為不會用.這當然是不可取的。想起來初中老班的一句話,出來混遲早是要還的,所以問題不解決遲早是要栽坑的。昨天遇見dfs序時不太會模擬,因為對出棧的點的順序理解的不...
鏈式向前星
我們首先來看一下什麼是前向星.前向星是一種特殊的邊集陣列,我們把邊集陣列中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序,並記錄下以某個點為起點的所有邊在陣列中的起始位置和儲存長度,那麼前向星就構造好了.用len i 來記錄所有以i為起點的邊在陣列中的儲存長度.用head i 記...
建邊 鄰接矩陣 vector 鏈式向前星
圖論的中一般都會牽涉到建邊的問題,下面的這三種建邊的方法視情況選取 int main struct node vectorvt 300 vt i 中存的是以i為起點的邊,vt i 0 e vt i 1 e vt i 2 e 分別表示每條邊的終點 intmain 以sx為起點的邊 vt ex push...