文章

63

粉丝

0

获赞

0

访问

13.4k

头像
2023年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年10月9日 09:59
阅读数 171

(1)建立两个数组in和out,分别用于存储顶点的入度和出度。其中in[i]表示i顶点的入度,out[i]表示i顶点的出度。我们分别遍历Edge邻接矩阵的行和列,来求出in和out数组。如果in[i] < out[i],则代表i顶点为K顶点,以此类推,返回结果。

(2)

int printVertices(MGraph G) {
    // 步骤1:建立两个数组in和out,并初始化为0
    // 分别用于存储每个顶点的入度和出度
    int in[MAXV];
    int out[MAXV];
    int k_vertex_count = 0; // 用于统计K顶点的数量
    int i, j;

    // 使用循环进行初始化
    for (i = 0; i < G.numVertices; i++) {
        in[i] = 0;
        out[i] = 0;
    }

    // 步骤2:遍历邻接矩阵,计算每个顶点的入度和出度
    for (i = 0; i < G.numVertices; i++) {
        for (j = 0; j < G.numVertices; j++) {
            // 如果存在从顶点i到顶点j的边
            if (G.Edge[i][j] == 1) {
                out[i]++; // 顶点i的出度加1
                in[j]++;  // 顶点j的入度加1
            }
        }
    }

    // 步骤3:遍历所有顶点,找出符合条件的K顶点并打印
    printf("入度小于出度的顶点 (K顶点) 有:\n");
    for (i = 0; i < G.numVertices; i++) {
        if (in[i] < out[i]) {
            k_vertex_count++; // 计数器加1
        }
    }

    // 步骤4:返回K顶点的总数
    retu...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发