一、用邻接表实现的图的结构如下:
每个Vertex相连接的所有的Vertex都用一张链表串连起来,串连的顺序不分先后。
二、代码实现
#include <iostream>
#include <list>
using namespace std;
class Vertex
{
public:
Vertex(char lab) :label(lab) {}
private:
char label;
};
template <class T>
class Graph
{
public :
Graph(int maxVertex) :VertexMax(maxVertex)
{
nVertex = 0;
VertexList = new T*[maxVertex];
HeadNodes = new list<int>[maxVertex];
}
~Graph()
{
delete[] VertexList;
delete[] HeadNodes;
}
void addVertex(T* v); //添加顶点
void addEdage(int start,int end); //添加边
void printVertex(void); //打印顶点
void printAdjList(void); //打印顶点的连接关系
private:
T** Ve