C Dijkstra鄰接表實現

2021-08-09 17:28:19 字數 761 閱讀 4471

#ifndef mapimplement_h_included

#define mapimplement_h_included

#include#include#define maxvertexnum 100

#define infinity 65535

using namespace std;

typedef struct node edgenode;

typedef char vertextype; /* 頂點用字元表示 */

typedef struct vnode vertexnode;

//typedef vertexnode adjlist[maxvertexnum]; /* adjlist是鄰接表型別 */

typedef struct algraph; /*algraph是以鄰接表方式儲存的圖型別 */

void createalgraph( algraph *g )

cout<<"請輸入邊的資訊(輸入格式為: i, j, w ):"}

void dijkstra(int s,int k,algraph *g)

//初始化各頂點到源點的距離

dist[s]=0;

for(int i=0;in;i++)

path[s]=-2;

bool collected[g->n]=;

while(1)

}}

鄰接表實現

鄰接表構建 鄰接表某個頂點遍歷 以上 include include include include using namespace std class adjacencytable void setedge int s,int e,int weight void getvertexinfo int...

陣列實現鄰接表

之前我們介紹過圖的鄰接矩陣儲存法,它的空間和時間複雜度都是n 2,現在我來介紹另外一種儲存圖的方法 鄰接表,這樣空間和時間複雜度就都是m。對於稀疏圖來說,m要遠遠小於n 2。先上資料,如下 第一行兩個整數n m。n表示頂點個數 頂點編號為1 n m表示邊的條數。接下來m行表示,每行有3個數x y z...

C 實現鄰接表

對於無向圖 v0,v1 v1,v2 v2,v3 v0,v2 對應的鄰接表表示就是 在 中,你要單獨對v1 v2 v3建立一種結構體型別。在對後面的節點0,1,2,3建立一種結構體型別 1 include 2 include3 define vertex 4 4using namespace std ...