什么是数据结构?
数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据
按照视点的不同,可以把数据结构分为 逻辑结构 和 物理结构:
基本的目标就是将数据及其逻辑关系存储到计算机的内存中
数据结构分类
逻辑结构分类
逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类
集合结构
集合结构中数据元素除了属于同一个集合外,他们之间没有任何其他的关系
线性结构
线性结构:线性结构中的数据元素之间存在一对一的关系
常见的有: 数组、队列、链表、栈
树形结构
树形结构:树形结构中的数据元素之间存在一对多的层次关系
图形结构
图形结构:图形结构的数据元素是多对多的关系
物理结构分类
是指数据的逻辑结构在计算机中的存储形式,因此也称为 存储结构
是面向计算机的.
顺序存储结构
把数据元素放到内存地址连续的存储单元里面,其数据间的逻辑关系和物理关系是一致的 ,比如我们常用的数组就是顺序存储结构。
一段连续的内存空间。
优点:随机访问
缺点:插入删除效率低,大小固定
链式存储结构
是把数据元素存放在任意的存储单元里面,这组存储单元可以是连续的也可以是不连续的。此时,数据元素之间并
不能反映元素间的逻辑关系,因此在链式存储结构中引进了一个指针存放数据元素的地址,这样通过地址就可以找
到相关联数据元素的位置
不连续的内存空间
优点:大小动态扩展,插入删除效率高
缺点:不能随机访问。
索引存储结构:
为了方便查找,整体无序,但索引块之间有序,需要额外空间,存储索引表。
优点:对顺序查找的一种改进,查找效率高
缺点:需额外空间存储索引
散列存储结构:
选取某个函数,数据元素根据函数计算存储位置,能存在多个数据元素存储在同一位置,引起地址冲突。
优点:查找基于数据本身即可找到,查找效率高,存取效率高。
缺点:存取随机,不便于顺序查找。
总结
逻辑结构是面向问题的,而物理结构就是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。