在线性和二维数组之间转换

时间:2013-11-16 12:00:09

标签: arrays 2d

我正在尝试在线性和二维数组之间进行转换。从2d到线性的公式非常简单,但我在解除它时遇到了麻烦(从线性位置获得2d位置)。可能吗?怎么样?

例如,假设我有数组{A,B,C,D,E,F},我知道它的2d数组是:{{A,B,C},{D,E,F }或

[A, B, C]
[D, E, F]

使F位置由(1,2)给出。我如何以算法的方式知道其他元素的位置?

1 个答案:

答案 0 :(得分:1)

不确定。假设数组是矩形的,如下所示:

###
###
###
###

不规则,像这样:

#######
#####
##########

(这在Java等某些语言中是可行的),那么你可以使用整数除法和模数运算:

row = i / numColumns
col = i % numColumns

这假设从零开始的数组,以及首先将数组划分为行的约定,然后将每行划分为单元格。