数据结构之图的基本概念中了解了图的基本概念,接下来对图的代码实现进行详解。
邻接无向图

1. 邻接表无向图介绍

邻接表无向图是指通过邻接表表示的无向图。
上面的图G1包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7条边。
上图右边的矩阵是G1在内存中的邻接表示意图。每一个顶点都包含一条链表,该链表记录了"该顶点的邻接点的序号"。例如,第2个顶点(顶点C)包含的链表所包含的节点的数据分别是"0,1,3";而这"0,1,3"分别对应"A,B,D"的序号,"A,B,D"都是C的邻接点。就是通过这种方式记录图的信息的。

2. 邻接表无向图代码实现

(1)数据结构

struct ENode {int nVindex;// 该边所指的顶点的位置 ENode *pNext;// 指向下一个边的指针}; struct VNode {char data;// 顶点信息 ENode *pFirstEdge;// 指向第一条依附该顶点的边 };

(2)图的创建

listUDG(char *vexs,int vlen,char edges[][2],int elen) { m_nVexNum= vlen; m_nEdgNum= elen;// 初始化"邻接表"的顶点for (int i =0; i