图的邻接矩阵

#include
const int MaxSize=10;
int visited[MaxSize]={0};
template
class MGraph
{
 public:
 MGraph(DataType a[],int n,int e);
 ~MGraph(){}
 void DF(int v);
 void BF(int v);
 void U();
 private:
  DataType vertex[MaxSize];
  int arc[MaxSize][MaxSize];
  int vertexNum,arcNum;
};

template
MGraph::MGraph(DataType a[],int n,int e)
{
 int i,j,k;
    vertexNum=n;arcNum=e;
 for(i=0;i  vertex[i]=a[i];
 for(i=0;i  for(j=0;j   arc[i][j]=0;
  for(k=0;k  {cout<<"请输入边的两顶点序号:";
  cin>>i>>j;
  arc[i][j]=1;arc[j][i]=1;
  }
}
template
void MGraph::U()
{
 for(int i=0;i {cout< for(int j=0;j {if(arc[i][j]==1)
 {cout<<" "< }
 cout<}
template
void MGraph::DF(int v)
{
 cout< for(int j=0;j  if(arc[v][j]==1&&visited[j]==0)
   DF(j);
}
template
void MGraph::BF(int v)
{
int Q[MaxSize];
int front=-1,rear=-1;
cout<while(front!=rear)
{
 v=Q[++front];
 for(int j=0;j  if(arc[v][j]==1&&visited[j]==0)
  {cout<}
}
int main()
{
 char ch[]={'A','B','C','D','E'};
    MGraphMG(ch,5,5);
 for(int i=0;i  visited[i]=0;
 cout<<"DF:";
  MG.DF(0);
 cout< for(int Z=0;Z  visited[Z]=0;
 cout<<"BF:";
 MG.BF(0);
 cout< cout<<"各顶点邻接点为"< MG.U();
 return 0;
}
图的邻接矩阵_第1张图片

你可能感兴趣的:(实验六)