数据的储存结构
- 我们知道了存储结构是逻辑结构在内存中的映像。因此,我们可以大胆的试想,我们是否可以根据逻辑结构的不同来给不同的存储结构分类。这答案是显然的。
存储结构分类
顺序存储结构
- 特点:逻辑上相邻的元素在物理位置上也是相邻的,所以不需要额外空间表示元素之间的逻辑关系。
- 优点:节省存储空间
- 定义:可实现对结点的随机存取,即每个元素对应一个序号,有该序号计算在计算机中的存储地址。
链式存储结构
- 特点:把数据元素存放在任意的存储单元中,这种存储单元可以是连续的,也可以是不连续的,通过指针域来反映数据元素的逻辑关系。(因此逻辑上相邻的元素在存储空间中不一定相邻,故此不能进行随机存取)
- 缺点:存储空间的利用率比较低,因为需要分配一部分数据的存储单元来存储元素之间的逻辑关系。
//部分代码(省略头节点和其他节点的声明和数据的赋存储)
head=point; //头节点使用head标识
point.next=point2;
point2.next=point3;
//···
pointn.next=null //尾节点next属性设置为null
索引存储结构
索引存储结构通常是存储元素信息的同时还建立附加的索引表。索引表中的每一项都被你称为索引项,索引项唯一标识一个元素,他的存在就是为了提高查找速度,在大型的数据下,经常使用的数据将会被创建索引,方便查找。简单来说,他就像是一个目录。
哈希存储结构
在密码学中,我们经常使用到hash算法来加密,通常来说,无论是什么数据,都能被加密成一段唯一代表这一数据的hash值。而哈希存储结构就是利用了这一思想,直接将计算出的hash值作为存储地址。
- 优点:查找速度快,只要给出待查元素的关键字就可以立即计算出该元素的存储地址。但是,hash存储结构只存储元素的数据,不存储元素之间的逻辑关系。
总结
当我们具体使用这些存储结构时,我们会发现通常情况下不会这么单纯的使用一种存储结构,经常是组合使用。因此,在使用时,我们需要考虑他们的优缺点,如何扬长避短,如何才能更好的适配自己的需求。