数据结构到底是什么?
一、数据结构到底是什么
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构包括三方面的内容:逻辑结构、存储结构和数据的运算。数据的逻辑结构和存储结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。
逻辑结构和物理结构(存储结构)
1.逻辑结构
1)定义
逻辑结构是指数据对象中数据元素之间相互关系(逻辑关系),即从逻辑关系上描述数据。它与数据的存储无关,是独立于计算机存储器的。
2)分类(线性结构和非线性结构)
根据数据元素之间关系的不同特征,通常有下列4类基本结构,复杂程度依次递进。
①集合:结构中的数据元素之间除了同属于一个集合外,没有其他的关系。
②线性结构:线性结构中的数据元素之间是一对一的关系。
③树形结构:树形结构中的数据元素之间是一对多的关系。
④图状结构或网状结构:结构中的元素之间是多对多的关系。
2.物理结构(存储结构)
1)定义
数据的物理结构是指数据的逻辑结构在计算机中的存储方式。又称存储结构。
它研究的是数据结构在计算机中的实现方法,包括数据元素的表示和元素之间的关系。
数据元素的存储结构形式主要有两种:顺序存储和链式存储
2)顺序存储和链式存储
①顺序存储结构
是利用数据元素在存储器中的相对位置来表示数据元素之间的逻辑顺序。
顺序存储结构是把数据元素放在地址连续的存储单元中,程序设计中使用数组类型来实现。(逻辑相邻物理相邻)
②链式存储结构
利用结点中指针来表示数据元素之间的关系。
把数据元素存储在任意的存储单元里,这组存储单元可以是连续的,也可以是连续的,程序设计中使用指针类型来实现。(逻辑相邻物理不一定相邻)
3)其他存储方式
索引存储:类似于目录,以后可以联系操作系统的文件系统章节来理解。
散列存储:通过关键字直接计算出元素的物理地址。
抽象数据类型
1.定义
①数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
例如:C语言中数据类型分为基本类型和构造类型
基本类型:整型、浮点型、字符型等
构造类型:数组、结构、联合、指针、枚举型、自定义类型等
②抽象数据类型(abstract data type,ADT):是指一个数学模型及定义在该模型上的一组操作。
延伸阅读:
二、散列(哈希)存储结构
就是根据数据元素的关键字通过哈希函数计算出一个数值用做数据元素的存储地址,优点在于查找速度快,只需要给出关键字可立即计算出该数据元素的地址 特点是指存储数据元素不存储数据之间的逻辑关系,只适合进行快速查找和插入的场合。
相关推荐HOT
更多>>mysql的MEMORY引擎为什么没有redis的应用广泛?
一、mysql的MEMORY引擎为什么没有redis的应用广泛从kv缓存的作用看,mysql优点不在kv缓存上,用它做kv缓存维护成本高,redis安装启动使用简单,...详情>>
2023-10-20 18:38:17什么是PWA?
一、什么是PWAPWA是渐进式 Web 应用,运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序。。这些应用无处不在、功能丰富...详情>>
2023-10-20 14:02:19软件包“被标记为手动安装”是什么意思?
一、软件包“被标记为手动安装”是什么意思当你尝试安装已安装的库或开发包时,你会看到此消息。意味着该软件包是由用户手动安装的,而不是通过...详情>>
2023-10-20 11:47:20什么是Flash?
一、什么是FlashFlash是一种基于向量图形的动画技术,由Adobe公司开发。它支持多媒体、游戏、网站设计等应用,可以在各种平台和设备上实现高质...详情>>
2023-10-20 10:24:01热门推荐
一个优异的web前端,需要具备哪些条件?
沸华为自研的数据库gaussdb有哪些优势?
热数据库ER图是怎么做的?
热为什么使用MySQL?
新什么是synchronized?
既然MySQL中InnoDB使用MVCC,为什么REPEATABLE-READ不能消除幻读?
分布式系统里用户ID生成有什么好的方法和规则能满足“少数、尽量短、不能直接看出规则”这几个条件?
isKindOfClass、isMemberOfClass 作用分别是什么?
APP开发流程步骤有哪些?
mysql的MEMORY引擎为什么没有redis的应用广泛?
webpack proxy工作原理为什么能解决跨域?
python的五个特点?
staticmethod和classmethod的区别?
Android App设计开发应遵循哪些原则?