图---邻接矩阵
/*图的邻接矩阵存储表示法*/ //用两个数组分别存储顶点表和邻接矩阵 #define MaxInt 32767 //表示极大值,即无穷 #define MVNum 100 //最大顶点数 typedef char VerTexType; //假设顶点的数据类型为字符型 typedef int ArcType; //假设边的权值类型为整型 typedef struct { VerTexType vexs[MVNum]; //顶点表 ArcType arcs[MVNum][MVNum]; //邻接矩阵 int vexnum, arcnum; //图的当前顶点数和边数 }AMGraph;
图---邻接表
/*图的邻接表的存储定义*/ //弧的结点结构 #define MVNum 100 //最大的顶点数 typedef struct ArcNode { int adjvex; //该边所指的顶点的位置 struct ArcNode* nextarc; //指向下一条边的指针 OtherInfo info; //和边相关的信息 }ArcNode; //顶点的结点结构 typedef struct VNode { VertexType data;//顶点信息 ArcNode* firstarc;//指向第一条依附该顶点的边 }VNode,AdjList[MVNum];//AdjList表示邻接表类型 //AdjList v相当于VNode v[MVNum] //图的结构定义(邻接表) typedef struct { AdjList vertices;//vertices是vertex的复数 int vexnum, arcnum;//图的当前顶点数和边数 }ALGraph; /*说明*/ ALGraph G;//定义了邻接表表示的图G G.vexnum = 5;G.arcnum = 6;//图G包含了5个顶点和6条边 G.vertices[1].data = 'v2';//图G中第2个顶点是v2 p = G.vertices[1].firstarc;//指针p指向顶点v2的第一个边结点 p->adjvex = 4;//p指针所指边结点是到下标为4的结点的边
标签:存储,struct,int,结点,常见,typedef,MVNum,顶点,数据结构 From: https://www.cnblogs.com/laojiahuo/p/17877694.html