m0_64600700 2021-11-28 19:15
浏览 10
已结题

关于数据结构图的相关内容

希望求一个图的相关操作,其中包括无向图的邻接矩阵 ,内容有添加顶点和添加边,以及进行DFS,BFS遍历所创建的图,最后根据所建的图每条边的权值用迪杰斯特拉算法求一下某点到另一点的最短路径。

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define MAX 100
typedef struct graph {
    char vertex[MAX];
    int arc[MAX][MAX];
    int edgnum;
    int vernum;
}Graph;
typedef struct edg {
    int weight;
}Edg;
typedef struct ver {
    char ver;
}Ver;
void addver(Graph *G, char ver) {
    if (ver >= 97 && ver <= 122) {
        ver = (char)(ver - 32);
    }
    G->vertex[G->vernum] =ver;
    G->vernum++;
}
void addedg(Graph *G, char v, char w, int weight) {
    int r = toz(G,v);
    int c = toz(G,w);
    G->arc[r][c] = weight;
    G->arc[r][r] = weight;
    G->edgnum++;
}
int toz(Graph *G, char ver) {
    int a;
    if (ver >= 97 && ver <= 122) {
        a = ver - 32 - 65;
    }
    else {
        a = ver - 65;
    }
    return a;
}
void show(Graph* G) {
    int n = G->vernum;
    for (int i = 0; i < n; i++) {
        printf("c%", G->vertex[i] + "\t\t");
    }
    printf("\n");
    for (int i = 0; i < n; i++) {
        printf("c%", G->vertex[i] + "\t");
        for (int j = 0; j < n; j++) {
            printf("d%", G->arc[i][j] + "\t\t");
        }
        printf("\n");
    }
}
void main() {
    Graph G;
    addver(&G, 'a');
    addver(&G, 'b');
    addver(&G, 'c');
    addver(&G, 'd');
    addedg(&G, 'a', 'b',10);
    addedg(&G, 'a', 'c', 8);
    show(&G);
}

这是我尝试写的一点内容但不能成功实现。
我想要达到的效果,不要输入值运行,而是直接根据所给的参数直接添加,就像我写的方法那样差不多,比如void addedg(Graph *G, char v, char w, int weight)这样添加边。
谢谢了,我知道这个要求可能有点多,但是我实在没有想法了,如果能实现,在此先感谢了。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月6日
    • 创建了问题 11月28日

    悬赏问题

    • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
    • ¥15 错误 LNK2001 无法解析的外部符号
    • ¥50 安装pyaudiokits失败
    • ¥15 计组这些题应该咋做呀
    • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
    • ¥15 让node服务器有自动加载文件的功能