扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
线性表从物理结构上分,有两种存储结构,一种是顺序存储结构,另一种是链式存储。这里呢,先讲一下顺序存储,毕竟,这种存储方式比较简单。
创新互联是一家集网站建设,蛟河企业网站建设,蛟河品牌网站建设,网站定制,蛟河网站建设报价,网络营销,网络优化,蛟河网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
那么什么是顺序存储结构呢?以下,是书中关于线性表顺序存储的标准定义:
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
通过这段标准定义,可以很容易的想到,顺序存储就是通过数组这样的线性存储结构来存放相关元素。因为,数组就是一段地址连续的存储单元。
那么关于顺序存储结构,有哪些注意点呢?
1.存储空间大小即数组最大长度。很明显,为了能够存储够相关的元素,一定要有适当的空间(MAXSIZE)。
2.存储位置。存储空间是一段连续的地址,所以,数组的首地址就是该线性表的存储位置(data)。
3.当前线性表的长度(length)。
以下,线性表的顺序存储结构代码:
#define MAXSIZE 20 //the max length of the list typedef int ElemType; struct SqList{ ElemType data[MAXSIZE]; int length; };
关于数组长度与线性表长度。数组长度指的是能够存储元素的最大的空间量的多少,这个值是个常量,它是不变的。而线性表长度,指的是,当前线性表的元素的个数,它是一个可以变化的量。
既然线性表的元素是借助数组来做的存储。那么,就不得不注意元素的地址。在内存中,每一块内存都有相应的地址编码来标识这块区域。并且,在数组中,第一个元素的下标位置为0,因为数组中的计数是从0开始的。也就是说,第i个位置的元素,其在数组中的存储位置为i-1。并且,由于不同的数据类型所占用的地址不同。在32位计算机中,int类型的数据占4个字节,char类型的数据占1个字节。假设,数组的数据类型是int型,那么,数组中的每一个元素都是int型的,也就是,每一个元素所占地址大小都是4字节。那么获取第i+1个元素的地址,为:LOC(ai+1) = LOC(ai) + 4;若数组的数据类型为c类型,那么第i+1个元素的地址为:LOC(ai+1) = LOC(ai) + c。
所以,对于,第i个数据元素ai的存储位置可以由a1推算得出:LOC(ai) = LOC(a1) + ( i - 1 ) * c。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流