#include<iostream>
#include<stdlib.h>
using namespace std;
const int Max=10; //图中最大顶点数
int visited[Max]={0}; //设置已访问标志
template<class T>
class Graph
{
public:
Graph(T a[],int n,int e); //构造函数,建立具有n个顶点e条边的图
~Graph(){}; //析构函数为空
void BFST(int v); //深度优先遍历图
void DFST(int v); //广度优先遍历图
void Pvertex(); //输出顶点的邻接点
private:
T vertex[Max]; //存放图中顶点的一维数组
int arc[Max][Max]; //存放图中边的二维数组
int vertexNum, arcNum; //图中的顶点数和边数
};
template<class T>
Graph<T>::Graph(T a[],int n,int e)
{
int i,j,k;
vertexNum=n,arcNum=e;
for(i=0;i<vertexNum;i++)
vertex[i]=a[i]; //初始化邻接矩阵
for(i=0;i<vertexNum;i++)
for(j=0;j<vertexNum;j++)
arc[i][j]=0;
for(k=0;k<arcNum;k++) //依次输入每一条边(两个顶点确定一条边)
{
cout<<"输入两点的编号:\n";
cin>>i;
cin>>j; //输入边依附的两个顶点编号
arc[i][j]=1;arc[j][i]=1; //置有边标志
}
}
template<class T>
void Graph<T>::DFST(int v) //深度优先遍历图(递归调用)
{
int j;
cout<<vertex[v];
visited[v]
图的实验1——图的邻接矩阵存储实现
最新推荐文章于 2024-01-23 17:14:29 发布