数据结构中的多维数组12 Aug 2025 | 阅读 15 分钟 多维数组本质上是数组的数组。它允许我们将数据存储在表格或网格状结构中,因此适用于矩阵、游戏棋盘或任何需要多个维度的数据的场景。当我们希望以表格形式(行和列)存储数据时,它非常有用。多维数组可以是二维、三维,直到 N 维。 二维数组在二维数组中,每一行都是一个一维数组。声明二维数组的语法与一维数组非常相似,如下所示。 语法(声明、初始化和赋值) 对于 r = 3, c = 3,将生成以下二维数组。 ![]() 由于数组使用零索引来存储元素,因此行从 0 到 r - 1,列从 0 到 c - 1。让我们看看二维数组在各种语言中的实现。 输出 The elements of the array are: 1 2 3 4 5 6 7 8 9 三维数组三维数组是二维数组的扩展。在三维数组中,可以放置多个二维数组。 一个包含三个二维数组(或块)的三维数组,每个二维数组有三行三列,可以表示为 ![]() 输出 The elements of the array are: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 将二维数组映射到一维数组谈到二维数组的映射,大多数人可能会想为什么需要这种映射。然而,二维数组是从用户的角度存在的。创建二维数组是为了实现类似关系数据库表的数据结构。在计算机内存中,二维数组的存储技术与一维数组类似。 二维数组的大小等于数组中行数和列数之积。我们需要将二维数组映射到一维数组以将其存储在内存中。 下图显示了一个 3 × 3 的二维数组。然而,这个数组需要映射到一个一维数组才能存储在内存中。 ![]() 将二维数组元素存储到内存中有两种主要技术: 1. 行主序在行主序中,二维数组的所有行都连续存储在内存中。以上图所示的数组为例,其按照行主序的内存分配如下所示。 ![]() 首先,数组的第 1 行完全存储在内存中,然后数组的第 2 行完全存储在内存中,依此类推,直到数组的最后一行。 ![]() 输出 The elements of the 2D array are: 1 2 3 4 5 6 7 8 9 The elements of the 1D array are: 1 2 3 4 5 6 7 8 9 2. 列主序根据列主序,二维数组的所有列都连续存储在内存中。以上图所示的数组的内存分配如下。 ![]() 首先,数组的第 1 列完全存储在内存中,然后数组的第 2 列完全存储在内存中,依此类推,直到数组的最后一列。 ![]() 输出 The elements of the 2D array are: 1 2 3 4 5 6 7 8 9 The elements of the 1D array are: 1 4 7 2 5 8 3 6 9 注意:二维数组转换为一维数组的方式,三维数组也可以采用同样的方式。读者需要自己尝试。多维数组的应用
多维数组选择题1. 下列二维数组的列主序是什么?
答案:c) 解释:在列主序中,先考虑第一列,然后考虑第二列,最后考虑第三列。 2. 下列二维数组的行主序是什么?
答案: d) 解释:在行主序中,首先考虑第一行,然后考虑第二行。 3. ___________ 不是多维数组。
答案: d) 解释:三维数组、四维数组和矩阵都是多维数组,而树不是多维数组。树通常使用基本结构实现。 4. 多维数组是 ______________ 的扩展。
答案: b) 解释:多维数组是一维数组的扩展。可以说它是一个数组的数组。 5. 多维数组通常被视为 _____________。
答案: d) 解释:多维数组可以被视为数组的数组。多维数组通常被视为网格、表格或矩阵。 下一主题稀疏矩阵(数据结构) |
我们请求您订阅我们的新闻通讯以获取最新更新。