- 图的邻接矩阵存储法
#define MaxVertexNum 100 
bool graph[MaxVertexNum][MaxVertexNum];
int graph[MaxVertexNum][MaxVertexNum];
  - 图的邻接表存储法
 把所有节点存储为节点数组,每个节点里有自己的数据和一个边指针,这个边指针相当于一个链表的头指针,这个链表里存放所有与这个节点相连的边,边里存放该边指向的节点编号和下一条边指针
 
#define MaxVertexNum 100 
typedef struct EdgeNode{ int adjvex; struct EdgeNode *next; 
}EdgeNode;typedef struct VNode{ VertexType data; EdgeNode *first; 
}VNode;typedef struct{int verNum, edgeNum; VNode AdjList[MaxVertexNum]; 
} ALGraph; 
  - 图的十字链表存储法(有向图)
 
typedef struct edgeNode{int headVer, tailVer; struct edgeNode *hLink, *tLink; infoType info;
} edgeNode;typedef struct VNode{VerType data;edgeNode *firstIn, *firstOut; 
} VNode;typedef struct{int verNum, edgeNum;VNode XList[verNum]; 
} OLGraph;
  - 图的邻接多重表存储法(无向图)
 
typedef struct edgeNode{int iVer, jVer; struct edgeNode *iLink, *jLink; infoType info; 
} edgeNode;typedef struct VNode{VerType data;edgeNode *firstEdge;
} VNode;typedef struct{int verNum, edgeNum; VNode adjMuList[verNum];
} AMLGraph;