邻接矩阵图的操作集
图的建立
#include <stdio.h>
#include <stdlib.h>
#define weighttype int
#define maxvertexnum 100
typedef int vertex;
struct Mgnode {
int Nv,Ne;
weighttype G[maxvertexnum][maxvertexnum];
};
typedef struct Mgnode *Mgraph;
struct edgenode {
vertex v1, v2;
weighttype weight;
};
typedef struct edgenode *edge;
void insertedge(Mgraph gr, edge e) {
gr->G[e->v1][e->v2] = e->weight;
gr->G[e->v2][e->v1] = e->weight;
}
Mgraph createMgraph(int vertexnum) {
vertex v, w;
Mgraph graph;
graph = (Mgraph)malloc(sizeof(struct Mgnode));
graph->Nv = vertexnum;
graph->Ne = 0;
for (v = 0; v < graph->Ne; v++)
for (w = 0; w < graph->Ne; w++)
graph->G[v][w] = 0;
return graph;
}
Mgraph buildMgraph() {
Mgraph g;
edge e;
int vertexnum;
scanf("%d", &vertexnum);
g = createMgraph(vertexnum);
scanf("%d", &g->Ne);
if (g->Ne > 0){
e = (edge)malloc(sizeof(struct edgenode));
for (int i = 0; i < g->Ne; i