文章

225

粉丝

165

获赞

361

访问

107.2k

头像
K 顶点统计 题解:
P8715
发布于2026年3月12日 17:53
阅读数 40

#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 >>...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发