邻接表:
顶点表的每个元素存储顶点信息,由俩个域成,data(数据域)和adjlink(与顶点关联的边对应的单链表)边链表中的结点由3个域组成,dest.weight和next,其中dest域根据无向图或者有向图而不同,weight域在非带权图中将被省略。
无向图的邻接表表示:
在边表中,第i行单链表存储所有与顶点vi相关联的边,每个边结点存储从顶点vi到vj的一条边(vi,vj),dest域是该条边的终点vj在顶点表的序号,weight域存储边的权值,next域指向与vi相关联的下一条边对应的结点。注意:无向图的邻接表将每条边分别存储在与该边关联的俩个顶点的边表中,故而存储了俩次
有向图的邻接表表示:
对于有向图来说,vi的邻接表中每个表结点都对应于以vi为始点射出的一条边。因此,有向图的边表也称为出边表。 有向图还有一种称为逆邻接表表示法,该方法为图中每个顶点vi建立一个入边表,入边表中的每个表结点均对应一条以vi为终点的边。
邻接表的带权图类:
顶点表图类:data表示顶点数据域,数据类型为T;adjlink表示顶点的边单链表,边结点的data域的数据类型为Edge结构体
#include "Edage.h"
#include "SingleLinkedList.h"
using namespace s