图的创建以及遍历(还没写完


参考文章:

https://blog.csdn.net/aaa_cainiao_66666/article/details/81510327

我写的代码(其实基本上就是上面参考文章的整合,但是写了很多注释):

#include 
#include 
#include 
typedef struct Graph{
    int nVertex;
    int nEdge;
    int *nMatrix;
}Graph;

//按邻接矩阵创建图
Graph *CreateGraph()
{
    //请求空间
    Graph *pGraph = (Graph *)malloc(sizeof(Graph));
    //获取点和边的信息
    scanf("%d %d", &nV, &nE);
    pGraph.nVertex = nV;
    pGraph.nEdge = nE;
    //根据点构建邻接矩阵
    pGraph.nMatrix = (int *)malloc(sizeof(int)*nV*nV);
    //初始化邻接矩阵
    memset(pGraph.nMatrix, 0, sizeof(int)*nV*nV);
    //定义输入边
    int Ver1,Ver2;
    //将边的信息转化为邻接矩阵
    for(int i=0;i0)
        HGraph = CreateGraph();
    //先深度优先遍历
    DFS(HGraph);
    printf("\n");
    //再广度优先遍历
    BFS(HGraph);
    return 0;
}

相关