线性表从物理结构上分,有两种存储结构,一种是顺序存储结构,另一种是链式存储。这里呢,先讲一下顺序存储,毕竟,这种存储方式比较简单。
创新互联建站自2013年起,先为龙湖等服务建站,龙湖等地企业,进行企业商务咨询服务。为龙湖企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。那么什么是顺序存储结构呢?以下,是书中关于线性表顺序存储的标准定义:
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
通过这段标准定义,可以很容易的想到,顺序存储就是通过数组这样的线性存储结构来存放相关元素。因为,数组就是一段地址连续的存储单元。
那么关于顺序存储结构,有哪些注意点呢?
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。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前题目:线性表的顺序存储结构-创新互联
文章转载:http://scgulin.cn/article/hipoi.html