用户:
SKQA查看:1 回复:3 评论:1 创建时间:2020-06-06T11:59:59
普通列表只有一维,就是从第一项到第N项。但是如果只用一维列表存储数据,算喵变得复杂(尤其是图论),我们需要用二维列表储存数据。二维的情形在生活中有广泛的应用,如EXCEL中的单元格、XY坐标系等。那么二维列表就必须由行号和列号确定位置:
以上图为例,1,1表示第一行第一列,2,3表示第二行第三列。
计算机储存数据一定是一维的,没有二维内存的概念。所以计算机必须要使用一个特殊方法来模拟出二维列表,使用行号和列号。那么如何把一维列表的索引值转换为行号列号呢?
↓
仔细分析后,你就会发现:
1=(1-1)*3+1 2=(1-1)*3+2 3=(1-1)*3+3
4=(2-1)*3+1 5=(2-1)*3+2 6=(2-1)*3+3
索引值=(行号-1)*列数+列号
可得:
行号=⌈索引值/列数⌉
列号=(索引值-1)%列数+1
⌈ ⌉符号是向上取整,⌈1.3⌉=2,⌈1.8⌉=2。百分号在这里不是只百分之几的意思,是求余数的意思,例如10%3=1(10÷3=3……1)。尝试用这几个索引值计算行列号吧!