文章
225
粉丝
165
获赞
361
访问
107.2k
#include <iostream>
#include <cstring>
using namespace std;
const int MAXV = 100; // 最大顶点数,对应题目定义
// 邻接矩阵存储的有向图结构(适配C++语法)
struct MGraph {
int numVertices, numEdges; // 顶点数和有向边数
char VerticesList[MAXV]; // 顶点表,存储字符标识
int Edge[MAXV][MAXV]; // 邻接矩阵,1表示有向边,0表示无
};
// 查找字符顶点在VerticesList中的下标(顶点无重复)
int findVertexIndex(MGraph &G, char c) {
for (int i = 0; i < G.numVertices; ++i) {
if (G.VerticesList[i] == c) {
return i;
}
}
return -1; // 题目保证输入合法,理论不会走到这里
}
int main() {
MGraph G;
// 初始化邻接矩阵为0(避免随机值干扰)
memset(G.Edge, 0, sizeof(G.Edge));
// 1. 读取顶点数和边数
cin >> G.numVertices >> G.numEdges;
// 2. 读取顶点字符列表
for (int i = 0; i < G.numVertices; ++i) {
cin >> G.VerticesList[i];
}
// 3. 读取m条有向边,构建邻接矩阵
int m = G.numEdges;
char u, v;
for (int i = 0; i < m; ++i) {
cin >> u >>...
登录后发布评论
暂无评论,来抢沙发