码迷,mamicode.com
首页 > 编程语言 > 详细

数组的实现

时间:2017-06-04 23:01:39      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:cat   取出   ext   不难   数组元素   oca   总结   连续   单元   

  由于存储单元是一维的结构,而数组是个多维的结构,则用一组连续的存储单元存放数据元素就有次序约定的问题了。假设现在有一个三维数组A[5][6][7],现在初始化其数据结构时,不难联想到,首先要说明存放的数据类型(也可以是数组元素的基址,但元素的类型是一定要说明的),其次,就是数组的维数,还有就是每一维的大小。现在继续考虑,假设现在这个数组已经被我们定义成了这个结构,当我们想要取出元素A[3][2][1],由于存储单元是连续的顺序存储结构,必须要算出其相对于A[0][0][0]的地址,不难算出其结果:A[3][2][1]=3*(6*7)+2*7+2。我们可以总结对任意的n维数组,设每一维的大小为bi,其元素的存储位置如下:

  Locate(j1,j2,....,jn)=Locate(0,0,....,0)+[(j1*bn*bn-1*....*b2)+(j2*bn*bn-1*....*b3)+....+(jn-1*bn)+(jn)]

        

数组的实现

标签:cat   取出   ext   不难   数组元素   oca   总结   连续   单元   

原文地址:http://www.cnblogs.com/helloworldcode/p/6942050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!