一、邻接矩阵

#include <iostream>
using namespace std;
#define MaxVertexNum 100         //顶点最大数目

//邻接矩阵存储结构
typedef struct{
    char Vex[MaxVertexNum];      //顶点表
    int Edge[MaxVertexNum][MaxVertexNum];    //边表
    int vexnum,arcnum;           //图当前顶点数和弧数
}MGraph;

二、邻接表

#include <iostream>
using namespace std;
#define MaxVertexNum 100         //顶点最大数目

//邻接表存储结构
typedef struct ArcNode{         //边表结点
    int adjvex;                 //该弧所指向的顶点的位置
    struct ArcNode *next;       //指向下一条弧的指针
    int info;                   //网的边权值
}ArcNode;
typedef struct VNode{           //顶点表信息
    char data;                  //顶点信息
    ArcNode *first;             //指向第一条依附该顶点的弧的指针
}VNode,AdjList[MaxVertexNum];
typedef struct{
    AdjList vertices;           //邻接表
    int vexnum,arcnum;          //图的顶点数和弧数
}ALGraph;                       //ALGraph是以邻接表存储的图类型