📄 图的邻接矩阵和遍历.txt
字号:
# include <iostream.h>
const int max=10; //定义顶点个数的最大值为10
class Graph
{private:
int v1[max]; //存放顶点值的一维数组
int e1[max][max]; //存放边信息的邻接矩阵
int vNum,eNum; //vnum存放顶点个数,enum存放边的个数
public:
Graph(int a[],int n,int e);
void DFST(int v); //深度遍历
};
Graph::Graph(int a[],int n,int e)//邻接矩阵构造函数
{vNum=n;
eNum=e;
for(int i=0;i<vNum;i++) v1[i]=a[i];
for(int j=0;j<vNum;j++) //初始化邻接矩阵
for(int t=0;t<vNum;t++)
e1[j][t]=0;
int p,b;
for(int k=0;k<eNum;k++)
{cout<<"第"<<k+1<<"条边"<<'\n';
cin>>p>>b; //边依附的两个顶点的序号
e1[p][b]=1; //无向图的邻接矩阵是对称的
e1[b][p]=1;
}
}
void Graph::DFST(int v) //深度优先遍历算法
{ int visited[max]; //给已经遍历过的顶点作标记
cout<<v1[v];
visited[v]=1;
for(int i=0;i<vNum;i++)
if(e1[v][i]==1&&visited[i]==0)
DFST(i);
}
void main()
{
int v;int e;int t;
cout<<"输入图的顶点数和边数"<<'\n';
cin>>v>>e;
int a[max];
cout<<"输入顶点序号"<<'\n';
for(int i=0;i<v;i++)
cin>>a[i];
cout<<"邻接矩阵的构造函数"<<'\n';
Graph k(a,v,e);
cout<<"请输入深度优先搜索开始访问的顶点"<<'\n';
cin>>t;
k.DFST(t);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -