图有两种表示方法,邻接链表和邻接矩阵。
具体使用哪种表示方式更合适与图的属性有关。若是稀疏图(E<<V^2)用邻接链表,若是稠密图(E接近V^2)用邻接矩阵。因为无论多少E的值是多少,邻接矩阵的开销始终为V^2。
邻接链表的表示:
struct node { int name; int length; struct node *next; }; typedef node * graph;
邻接矩阵的表示:
#define VERTEX_NUM 10 int graph[VERTEX_NUM][VERTEX_NUM];