gpt4 book ai didi

c - 在 C 编程中,我们如何初始化这个 int *goo,其中 goo 是图的边列表?

转载 作者:行者123 更新时间:2023-11-30 20:16:42 25 4
gpt4 key购买 nike

在 C 编程中,我们如何初始化这个 int *goo,其中 goo 是图的边列表?

最佳答案

一维整数数组通常不能用于直观地存储图形,即没有某种映射代码。

至少有两种常见的方法可以用数学方式表示矩阵/数组中的图。假设 N 个编号顶点和 M 条边:

  • N x N adjacency matrix 。这是一个二维数组,其中每个顶点都有自己的线。

  • M 号 adjacency list 。这本质上可以归结为一个边列表,并且可以实现为一个 M x 2 数组,其中每个都有自己的线。

这两种表示形式都是直观的二维 K x L 数组。您可以使用一维数组,方法是使用额外的代码将数据放入(K * L) x 1一维数组A。例如。获取原始 K x L 数组的 (i, j) 元素:

e = A[i * L + j];

然后你可以简单地动态分配数组:

int *A = (int *)malloc(K * L * sizeof(int));

(在有人提示显式强制转换之前,C++ 中需要它,这对我来说是一个足够好的理由)

关于c - 在 C 编程中,我们如何初始化这个 int *goo,其中 goo 是图的边列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4831829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com