#include<iostream>
using namespace std;
#define len 100
class Graph{
public:
char node[len]; // 顶点集合
int edge[len][len]; // 邻接矩阵
int n; // 节点个数
int e; // 边的个数
int visited[len]; // 用来得知该节点是否被访问
Graph(){
n = 7;
e = 7;
// 设置节点为默认数值
string nodes = "ABCDEFG";
// 输入节点
for(int i=0; i < n; i++){
node[i] = nodes[i];
}
// 设置边为默认值
char edges[][2] = {
{'A', 'C'},
{'A', 'D'},
{'A', 'F'},
{'C', 'B'},
{'C', 'D'},
{'F', 'G'},
{'G', 'E'}
};
// 边初始化为0
for(int i=0; i < n; i++){
for(int j=0; j < n; j++){
edge[i][j] = 0;
}
}
for(int i=0; i < e; i++){
int start = get_Node_Index(edges[i][0]);
int end = get_Node_Index(edges[i][1]);
// 无向图的建立
edge[start][end] = 1;
edge[end][start] = 1;
}
// 初始化 visited 数组
for(int i=0; i < n; i++){
visited[i] = 0;
}
}
// 返回顶点下标
int get_Node_Index(char number){
for(int i=0; i < n; i++){
if(number == node[i]){
return i;
}
}
return -1; //这句话永远不会执行的
}
};
int main(){
Graph g;
cout<<" ";
for(int i=0; i < g.n; i++){
cout<<g.node[i]<<" ";
}
cout<<endl;
for(int i=0; i < g.n; i ++){
cout<<g.node[i]<<" ";
for(int j=0; j < g.n; j++){
cout<<g.edge[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
#define len 100
class Graph{
public:
char node[len]; // 顶点集合
int edge[len][len]; // 邻接矩阵
int n; // 节点个数
int e; // 边的个数
int visited[len]; // 用来得知该节点是否被访问
Graph(){
// 输入节点个数
cout<<"输入节点数目: ";
cin>>n;
// 输入边的个数
cout<<"输入边的数目: ";
cin>>e;
// 输入节点
for(int i=0 ; i < n; i++){
cout<<"请输入第 "<<i+1<<" 个节点: ";
cin>>node[i];
}
// 边初始化为0
for(int i=0; i < n; i++){
for(int j=0; j < n; j++){
edge[i][j] = 0;
}
}
// 输入边
char t1, t2;
for(int i=0; i < e; i++){
cout<<"请输入第 "<<i+1<<" 条边起点: ";
cin>>t1;
cout<<"请输入第 "<<i+1<<" 条边终点: ";
cin>>t2;
int start = get_Node_Index(t1);
int end = get_Node_Index(t2);
edge[start][end] = 1;
edge[end][start] = 1;
}
// 初始化 visited 数组
for(int i=0; i < n; i++){
visited[i] = 0;
}
}
// 返回顶点下标
int get_Node_Index(char number){
for(int i=0; i < n; i++){
if(number == node[i]){
return i;
}
}
return -1; //这句话永远不会执行的
}
};
int main(){
Graph g;
cout<<" ";
for(int i=0; i < g.n; i++){
cout<<g.node[i]<<" ";
}
cout<<endl;
for(int i=0; i < g.n; i ++){
cout<<g.node[i]<<" ";
for(int j=0; j < g.n; j++){
cout<<g.edge[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
return 0;
}
参考资料
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。