ZBLOG

你刚才给出的与之前一样,请务必重新给一个与之前不一样的满足上述要求的MGraph的完整代码,各个头文件和源文件都要包括,头文件MGraph.h,源文件MGraph.c,main.c,谢谢

非常抱歉之前的回答没有满足您的要求。以下是另一组与之前不同的满足要求的MGraph完整代码:

MGraph.h:

#ifndef MGRAPH_H
#define MGRAPH_H

#define MAX_VERTEX_NUM 100 // 图的最大顶点数

// 图的顶点类型
typedef char VertexType;

// 图的边类型
typedef int EdgeType;

// 图的邻接矩阵结构定义
typedef struct {
    VertexType vexs[MAX_VERTEX_NUM]; // 顶点表
    EdgeType edges[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 邻接矩阵,存储边信息
    int vexNum; // 当前顶点数
    int edgeNum; // 当前边数
} MGraph;

// 创建图(邻接矩阵表示)
void CreateGraph(MGraph* G);

// 输出邻接矩阵
void PrintMatrix(const MGraph* G);

#endif

MGraph.c:

#include <stdio.h>
#include "MGraph.h"

// 创建图(邻接矩阵表示)
void CreateGraph(MGraph* G) {
    printf("请输入图的顶点数和边数:");
    scanf("%d%d", &G->vexNum, &G->edgeNum);
    
    printf("请输入图的顶点信息:\n");
    for (int i = 0; i < G->vexNum; i++) {
        scanf(" %c", &G->vexs[i]);
    }
    
    for (int i = 0; i < G->vexNum; i++) {
        for (int j = 0; j < G->vexNum; j++) {
            G->edges[i][j] = 0; // 初始化邻接矩阵,所有边置为零
        }
    }
    
    printf("请输入各边的起始顶点和终止顶点序号:\n");
    for (int k = 0; k < G->edgeNum; k++) {
        int start, end;
        
        printf("请输入第%d条边的起始顶点和终止顶点序号:", k + 1);
        scanf("%d%d", &start, &end);
        
        if (start >= G->vexNum || end >= G->vexNum) {
            printf("输入的顶点序号超出范围,请重新输入。\n");
            k--;
            continue;
        }
        
        G->edges[start][end] = 1;
    }
}

// 输出邻接矩阵
void PrintMatrix(const MGraph* G) {
    printf("图的邻接矩阵表示如下:\n");
    
    for (int i = 0; i < G->vexNum; i++) {
        for (int j = 0; j < G->vexNum; j++) {
            printf("%d ", G->edges[i][j]);
        }
        printf("\n");
    }
}

main.c:

#include <stdio.h>
#include "MGraph.h"

int main() {
    MGraph graph;
    
    CreateGraph(&graph);
    
    PrintMatrix(&graph);
    
    return 0;
}

请将以上代码分别保存为MGraph.h、MGraph.c和main.c,并在同一目录下进行编译和运行,即可得到另一组满足要求的MGraph程序。如有任何问题,请随时提问。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=2671

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?