数据结构三要素

数据结构的三要素:逻辑结构、存储结构、操作。

一、数据的逻辑结构

概念:逻辑结构是指数据元素之间的逻辑关系,与数据的存储无关,是独立于计算机的。也就是说数据的逻辑结构如何设计与它的实际存储方式是没有关系的,比如说,一个集合内的元素在逻辑上是分散的,但实际存储(物理层面上)在计算机时我们仍然可以将其按顺序存放,形成一整块,而不一定也是随机分散的。

(一)分类

逻辑结构又分为线性结构和非线性结构。

(1)线性结构:线性结构中的数据元素之间存在一对一的关系,数据元素之间只有一个前驱和一个后继。线性结构包括以下几种:

  1. 一般线性表
  2. 受限线性表:栈和队列、串
  3. 线性表推广:数组、广义表

(2)非线性结构:集合、树形结构、图状结构

除了以上基本的逻辑结构,还可以通过组合和扩展来创建更复杂的数据结构。例如,树和图可以结合形成森林,链表可以嵌套形成多级链表等。

二、数据的存储结构

概念:存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构

(一)分类

(1)顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。通常是一个数组。每个数据元素占据一段连续的内存地址,可以通过索引来访问特定位置的元素。

  • 优点:可以实现随机存取,每个元素占用最少的存储空间。
  • 缺点:只能使用相邻的一整块存储单元,因此可能产生较多的外部碎片。

(2)链式存储:不要求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。

  • 优点:不会出现碎片现象,能充分利用所有存储单元。
  • 缺点:每个元素因存储指针而占用额外的存储空间,且只能实现顺序存取。

(3)索引存储:在存储元素信息的同时,还建立附加的索引表

  • 优点:检索速度快。
  • 缺点:附加的索引表额外占用存储空间;增加和删除数据同时也要修改索引表,会花费较多的时间。

(4)散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储

  • 优点:检索、增加和删除结点的操作都很快。
  • 缺点:若散列函数不好,则可能出现元素存储单元的冲突,而解决冲突会增加时间和空间开销。

需要注意的是,存储结构是逻辑结构在计算机内存中的具体实现方式,不同的逻辑结构可以采用相同或不同的存储结构。例如,线性表既可以使用顺序存储也可以使用链式存储来表示,而树和图一般使用链式存储来表示。选择合适的存储结构可以提高数据操作的效率和灵活性,同时也要考虑到空间复杂度和时间复杂度的权衡。

三、操作

操作是指对数据结构进行的基本操作,包括插入、删除、查找、修改等。操作是通过对存储结构中的数据元素进行读写操作来实现的。不同的数据结构支持不同的操作,例如数组支持随机访问,链表支持快速插入和删除等。

也可以认为是数据的运算(施加在数据上的运算包括运算的定义和实现)。运算的定义是针对逻辑结构的,指出运算的功能。运算的实现是针对存储结构的,指出运算的具体操作步骤。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值