赞
踩
来自UNSW的一个C语言大作业,滴滴滴滴滴滴
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdbool.h>
typedef struct GraphRep *Graph;
// vertices are ints
typedef int Vertex;
// edges are pairs of vertices (end-points)
typedef struct Edge {
Vertex v;
Vertex w;
} Edge;
typedef struct GraphRep {
int **edges; // adjacency matrix
int nV; // #vertices
int nE; // #edges
} GraphRep;
bool found;
Graph newGraph(int V) {
assert(V >= 0);
int i;
Graph g = (Graph )malloc(sizeof(GraphRep));
// Graph g = NULL;
assert(g != NULL);
g->nV = V;
g->nE = 0;
// allocate memory for each row
g->edges =(int **) malloc(V * sizeof(int *));
assert(g->edges != NULL);
// allocate memory for each column and initialise with 0
for (i = 0; i < V; i++) {
g->edges[i] =(int *)calloc(V, sizeof(int));
assert(g->edges[i] != NULL);
}
return g;
}
// check if vertex is valid in a graph
bool validV(Graph g, Vertex v) {
return (g != NULL && v >= 0 && v < g->nV);
}
void insertEdge(Graph g, Edge e) {
assert(g != NULL && valid
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。