我正在使用邻接列表创建图。

typedef struct node
{
    struct node *next;
    int value;
    int to;
} node;

typedef struct bag
{
    node *first;
    int size;
} bag;


node是图形中的每个边,而bag是顶点的所有相邻边的列表。
我想创建一个数据结构Adjacency List,以使列表是bag *的数组。
像这样-

bag **adjacency_list;


但是我对如何初始化adjacency_list感到困惑。

我希望我的adjacency_list's大小等于顶点数量,并在将来需要时可以添加更多顶点。

如果我初始化如下-

adjacency_list = malloc(no_vert * sizeof(*adjacency_list));


如何为每个顶点添加相应的包(边)?

最佳答案

如果需要链表,则不需要双指针。即定义bag * adjacency_list;

关于c - 如何声明结构指针的动态数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27144403/

10-12 19:07