图的创建以及遍历(还没写完
参考文章:
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;
}