8 (2 6 o092 3 52A.edge=3508 60 0
86 3 1 9 2 5 4 20 31 = 6 0 3 5 0 8 0 9 2 0 1 4 A.edge
用邻接矩阵表示的图结构的定义 # define max value Int Max//在< limits.h>中 const int NumEdges=50;∥边条数 const int Num vertices=10;//项点个数 typedef char VertexData;/点数据类型 typedef int EdgeData; ∥/边上权值类型 typedef struct t VertexData vexList[Num Vertices;∥顶点表 EdgeData Edge Num Vertices Num Vertices ∥邻接矩阵.可视为边之间的关系 intn,e;/图中当前的顶点个数与边数 3 MTGraph
#define MaxValue Int_Max //在<limits.h>中 const int NumEdges = 50; //边条数 const int NumVertices = 10; //顶点个数 typedef char VertexData; //顶点数据类型 typedef int EdgeData; //边上权值类型 typedef struct { VertexData vexList[NumVertices]; //顶点表 EdgeData Edge[NumVertices][NumVertices]; //邻接矩阵, 可视为边之间的关系 int n, e; //图中当前的顶点个数与边数 } MTGraph; 用邻接矩阵表示的图结构的定义
邻接表( Adjacency List) 无向图的邻接表 data adi dest link dest link 0A 3∧ ③B 1 B 0 2∧ 1∧ 3D 0∧ 同一个顶点发出的边链接在同一个边链表 中,每一个链结点代表一条边边结点结 点中有另一顶点的下标dest和指针link
邻接表 (Adjacency List) ◼ 无向图的邻接表 同一个顶点发出的边链接在同一个边链表 中,每一个链结点代表一条边(边结点), 结 点中有另一顶点的下标dest 和指针 link。 A B C D data adj A B C D 0 1 2 3 dest link dest link 1 3 0 2 1 0
有向图的邻接表和逆邻接表 data adi dest link ABO 0A+[1∧ dest link 1B 0 2∧ 2C| 邻接表(出边表) data adi dest link 0A 1入 1B 0∧ 逆邻接表(入边表)
◼ 有向图的邻接表和逆邻接表 A B C data adj A B C 0 1 2 dest link dest link 邻接表 (出边表) data adj A B C 0 1 2 dest link 逆邻接表 (入边表) 1 0 2 0 1 1
网络(带权图)的邻接表 )6 data adi dest cost link A 5+36 2 0人 28∧ BC 2C 32∧ 3 D 19∧ 项点表)(出边表)
◼ 网络 (带权图) 的邻接表 B A C D 6 9 5 2 8 data adj A B C D 0 1 2 3 dest cost link 1 5 3 6 2 8 3 2 1 9 (顶点表) (出边表)