鄰接表的幾種儲存方式

2021-08-04 23:38:01 字數 720 閱讀 4942

總的來說有以下三種方式:

鍊錶:

//儲存結構 

struct node

; node *head[m];

//新增乙個有向邊

void addadj(int u,int v)

//遍歷

for(node *p=head[u];p!=null;p=p->next)

int v=p->vex;//連線u的結點v

//初始化

memset(head,null,sizeof(head));

鏈式前向星:(有點兒靜態鍊錶意思)

//儲存結構

struct edge

edge[m];

int head[m];

int cnt=0;

//新增乙個有向邊

void add(int u,int v)

//遍歷

for(int i=head[u];~i;i=edge[i].next)

int v=edge[i].to;

//初始化

memset(head,-1,sizeof(head));

stl庫:

//儲存結構

vectornode[m];

//新增乙個有向邊

node[u].push_back(v);

//遍歷

for(int i=0;i

鄰接表來儲存資料

includeusing namespace std 使用鄰接表來儲存圖,把m遠小於n 2的圖稱為稀疏圖 適合稀疏圖,可以把時間複雜度優化到o m n logn define maxn 9999 int n,m int u maxn v maxn w maxn first要比n大1,next要比n大...

陣列模擬鄰接表儲存

鄰接矩陣看上去是個不錯的選擇,首先是容易理解,第二是索引和編排都很舒服但是我們也發現,對於邊數相對頂點較少的圖,這種結構無疑是存在對儲存空間的極大浪費。因此我們可以考慮另外一種儲存結構方式,例如把陣列與鍊錶結合一起來儲存,這種方式在圖結構也適用,我們稱為鄰接表 adjacencylist 每乙個單鏈...

iOS儲存的幾種方式

1.寫檔案 nsdata dat nsdata alloc initwithcontentsofurl nsurl urlwithstring imageurl nsstring documents nsstring stringwithformat documentdataf dat writet...