数据结构之数据的储存结构

数据的储存结构

  • 我们知道了存储结构是逻辑结构在内存中的映像。因此,我们可以大胆的试想,我们是否可以根据逻辑结构的不同来给不同的存储结构分类。这答案是显然的。

存储结构分类

顺序存储结构

  • 特点:逻辑上相邻的元素在物理位置上也是相邻的,所以不需要额外空间表示元素之间的逻辑关系。
  • 优点:节省存储空间
  • 定义:可实现对结点的随机存取,即每个元素对应一个序号,有该序号计算在计算机中的存储地址。

链式存储结构

  • 特点:把数据元素存放在任意的存储单元中,这种存储单元可以是连续的,也可以是不连续的,通过指针域来反映数据元素的逻辑关系。(因此逻辑上相邻的元素在存储空间中不一定相邻,故此不能进行随机存取)
  • 缺点:存储空间的利用率比较低,因为需要分配一部分数据的存储单元来存储元素之间的逻辑关系。
//部分代码(省略头节点和其他节点的声明和数据的赋存储)
head=point;   //头节点使用head标识
point.next=point2;
point2.next=point3;
//···
pointn.next=null //尾节点next属性设置为null

索引存储结构

索引存储结构通常是存储元素信息的同时还建立附加的索引表。索引表中的每一项都被你称为索引项,索引项唯一标识一个元素,他的存在就是为了提高查找速度,在大型的数据下,经常使用的数据将会被创建索引,方便查找。简单来说,他就像是一个目录。

哈希存储结构

在密码学中,我们经常使用到hash算法来加密,通常来说,无论是什么数据,都能被加密成一段唯一代表这一数据的hash值。而哈希存储结构就是利用了这一思想,直接将计算出的hash值作为存储地址。

  • 优点:查找速度快,只要给出待查元素的关键字就可以立即计算出该元素的存储地址。但是,hash存储结构只存储元素的数据,不存储元素之间的逻辑关系。

总结

当我们具体使用这些存储结构时,我们会发现通常情况下不会这么单纯的使用一种存储结构,经常是组合使用。因此,在使用时,我们需要考虑他们的优缺点,如何扬长避短,如何才能更好的适配自己的需求。

猜你喜欢

转载自blog.csdn.net/y943711797/article/details/126874975