【发布时间】:2019-05-06 16:51:25
【问题描述】:
我想使用一个数组来存储图形的邻接列表。其中每个节点都有不同数量的节点连接到它。所以我只想拥有以下类型的数组:
Row 0: 1 5 3
Row 1: 0 2 3
Row 2: 1
Row 3: 0 1 5 4
Row 4: 3 5
Row 5: 0 1 3 4
【问题讨论】:
-
一个
std::vector<std::vector<int>>会允许这个...有什么理由你需要一个数组吗? -
邻接表可以使用链表。
-
是的,你可以。双指针数组。每个索引都可以初始化为一个可变长度的数组。
-
就个人而言,我鼓励在系统的设计部分努力工作,以提高效率并减少不必要的资源使用。在这种情况下,我建议您考虑一种使用单个数组/向量来完成这项工作的方法。祝你好运,记住:困难时期会带来好的思考!
-
@KorelK -- 如果二维数组具有统一的列长度,那么一维数组或向量将起作用。但是,如果每一行包含不同数量的列(正如 OP 的数据似乎暗示的那样),那么使用单个数组来实现问题就会变得更加困难,并且可能更加复杂。没有必要仅仅为了“高效”而这样做。
标签: c++ algorithm multidimensional-array data-structures graph