数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:
顺序存储结构和
链式存储结构。数据的存储结构是指数据的
逻辑结构在计算机中的表示。
顺序存储方法它是把逻辑上相邻的结点存储在物理位置相邻的
存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为
顺序存储结构。
顺序存储结构是一种最基本的存储表示方法,通常借助于
程序设计语言中的
数组来实现。
链接存储方法它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的
指针字段表示的。由此得到的存储表示称为
链式存储结构,链式存储结构通常借助于
程序设计语言中的
指针类型来实现。
在顺序存储中,每个
存储空间含有所存元素本身的信息,元素之间的逻辑关系是通过
数组下标位置简单计算出来的
线性表的顺序存储,若一个元素存储在对应数组中的下标位置为i,则它的前驱元素在对应数组中的下标位置为i-1,它的后继元素在对应数组中的下标位置为i+1。在
链式存储结构中,存储结点不仅含有所存元素本身的信息,而且含有元素之间逻辑关系的信息。
其中data表示值域,用来存储
节点的数值部分。Pl,p2,…,Pill(1n≥1)均为
指针域,每个指针域为其对应的后继元素或前驱元素所在结点(以后简称为后继结点或前驱结点)的存储位置。通过结点的
指针域(又称为链域)可以访问到对应的后继结点或前驱结点,若一个结点中的某个指针域不需要指向其他结点,则令它的值为空(NULL)。
在数据的顺序存储中,由于每个元素的存储位置都可以通过简单计算得到,所以访问元素的时间都相同;而在数据的链接存储中,由于每个元素的存储位置保存在它的前驱或后继结点中,所以只有当访问到其前驱结点或后继结点后才能够按
指针访问到,访问任一元素的时间与该元素结点在
链式存储结构中的位置有关。
程序的局部性原理。层次结构是基于程序的局部性原理的。对大量典型程序运行情况的统计分析得出的结论是:CPU对某些地址的访问在短时间间隔内出现集中分布的倾向。这有利于对
存储器实现层次结构。
考虑由Cache和主存构成的两级存储系统,其性能主要取决于Cache和贮存的
存取周期以及访问它们的