#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 ...