请设计Graph createGraph()函数。 该函数创建一个空图并返回。 请注意,本题有预置代码,只需提交所要求的函数定义代码即可。图的邻接表,用c
时间: 2024-02-13 07:06:34 浏览: 87
根据题意,可以设计如下的createGraph()函数来创建一个空图,该函数返回一个指向Graph结构体的指针:
```c
#include <stdlib.h>
typedef struct node {
int val;
struct node *next;
} Node;
typedef struct graph {
int numVertices;
Node **adjLists;
} Graph;
Graph* createGraph(int numVertices) {
Graph* graph = (Graph*)malloc(sizeof(Graph));
graph->numVertices = numVertices;
graph->adjLists = (Node**)malloc(numVertices * sizeof(Node*));
for (int i = 0; i < numVertices; i++) {
graph->adjLists[i] = NULL;
}
return graph;
}
```
上述代码中,Graph结构体表示图,其中numVertices表示图中顶点的数量,adjLists是一个指向邻接表的指针数组。邻接表是由Node结构体组成的链表,每个Node结构体表示一个邻居。createGraph()函数接受一个参数numVertices,表示所需创建的图的顶点数量。在函数中,首先动态分配一个Graph结构体的内存空间,并将numVertices赋值给graph->numVertices,然后再动态分配一个指针数组graph->adjLists,数组长度为numVertices。接下来,使用一个循环初始化邻接表,将每个节点初始化为NULL,并最终返回指向Graph结构体的指针graph。
阅读全文