(2)创建邻接表算法
创建无向网邻接表算法:
创建有向网邻接表算法:
(3)输出邻接表结果算法
测试结果粘贴如下:
#include <iostream>
using namespace std;
const int MaxSize=20;
class Edge //边
{
public:
int adjvertex; //当前结点的下标
Edge *nextarc; //下一条边
int value; //边的权值
};
template<class T> class Graph;
template<class T>
class VertexNode{ //节点
friend class Graph<T>;
T vex; //结点名
Edge *firstarc; //第一个边
};
template<class T>
class Graph{
public:
Graph(T a[],int n,int e);//构造一个有E条边N个结点的图,A[]为结点矩阵
~Graph(); //析构函数
void printGraph(); //输出
void DFS(int v,int visited[]); //深度优先遍历
private:
VertexNode<T> adjlist[MaxSize]; //存放结点
int vertexNum,arcNum; //顶点数和边数
void creatGraphU(T a[],int n,int e); //无向图
void creatGraphH(T a[],int n,int e); //有向图
};
template<class T>
Graph<T>::~Graph(){