1.图的深度优先遍历
template<typename DataType>
void MGraph<DataType>::DFTraverse(int v)
{
cout<<vertex[v];visited[v]=1;
for(int j=0;j<vertexNum;j++)
if(edge[v][j]==1 && visited[j]==0) DFTraverse(j);
}
2.图的广度优先遍历
template<typename DataType>
void MGraph<DataType>::BFTraverse(int v)
{
int w,j,Q[MaxSize];
int front=-1,rear=-1;
cout<<vertex[v];visited[v]=1;
Q[++rear]=v;
while(font!=rear)
{
w=Q[++front];
for(j=0;j<vertexNum;j++)
if(edge[w][j]==1 && visited[j]==0)
{
cout<<<vertex[j];visited[j]=1;Q[++rear]=j;
}
}
}
3.邻接矩阵的使用
#include<iostream>
using namespace std;
int visited[MaxSize]={
0};
int main()
{
int i;
char ch[]={
'A','B','C','D','E'};
MGraph<char> MG{
ch,5,6};
for(i=0;i<MaxSize;i++)
visited[i]=0;
cout<<"深度优先遍历的序列是:";
MG.DFTraverse(0);
for(i=0;i<MaxSize;i++)
visited[i]=0;
cout<<"广度优先遍历的序列是:";
MG.DFTraverse(0);
return 0;
}