鉴于这两个结构:
typedef struct graph {
int number_vertices;
vertex *vertices;
} graph;
typedef struct vertex {
int id;
linked_list *out_neighbours;
linked_list *in_neighbours;
} vertex;
如何将多个vertices
添加到graph
?
答案 0 :(得分:2)
像这样:
graph g;
g.number_vertices = n;
g.vertices = malloc(n * sizeof(vertex)); // allocate dynamic memory for `n` vertices
// and make g.vertices point to that memory
// fill g.vertices[0], g.vertices[1], …, g.vertices[n-1]
// …
// deallocate the memory when you're done:
free(g.vertices);
答案 1 :(得分:0)
分配一个足够大的缓冲区来存储顶点,并将指针存储在结构vertices
的变量graph
中。
struct graph g;
g.number_vertices = 10; // If you want to store 10 vertices
g.vertices = (vertex*)malloc(g.number_vertices * sizeof(struct vertex));
g.vertices[0]... // To access the first.
g.vertices[1]... // To access the second.
g.vertices[2]... // To access the third, etc.