首先给出矩阵的,代码如下:
#include<iostream>
#include<string>
using namespace std;
typedef char verTexType;
typedef bool edgeType;
#define maxVex 100
#define maxValue 65535
typedef struct {
int verNum, edgeNum;
verTexType V[maxVex];
edgeType E[maxVex][maxVex];//邻接矩阵
}Graph;
void createGraph(Graph *g, int a, int b) {
bool isValid(char, char, int);//声明
char v1, v2;
//初始化
//将顶点从A开始初始化
for (int i = 0;i < a;i++) {
g->V[i] = 'A' + i;
}
for (int i = 0;i < a;i++) {
for (int j = 0;j < a;j++) {
g->E[i][j] = false;
}
}
cout << "每次请输入两个大写字母:" << endl;
while (b--) {
cin >> v1 >> v2;
//无向图是对称的
g->E[v1 - 'A'][v2 - 'A'] = true;
g->E[v2 - 'A'][v1 - 'A'] = true;
}
}
void printGraph(Graph *g, int len) {
for (int i = 0;i < len;i++) {
for (int j = 0;j < len;j++) {
if (g->E[i][j]) {
printf("边:%c---%c\n", i + 'A', j + 'A');
//无向图是对称的,而相同的边只输入一次就可以了