程序设计=数据结构+算法
数据结构研究的就是,数据元素相互之间存在的一种或多种特定关系的集合。
传统上,我们把数据结构分为逻辑结构和物理结构。
(1)逻辑结构:指数据对象中数据元素之间的相互关系。
(2)物理结构:指数据的逻辑结构在计算机中的存储形式。
四大逻辑结构:
(1)集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他不三不四的关系。
(2)线性结构:线性结构中的数据元素之间是1对1的关系。
(3)树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。
(4)图形结构:图形结构的数据元素是多对多的关系。
物理结构:研究的是如何把数据元素存储到计算机的存储器中。
存储器主要针对内存而言,像硬盘、软盘、光盘等外部存储器的数据组织,通常用文件结构来描述。
数据元素的存储形式有两种:顺序存储和链式存储。
(1)顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。例如排队、数组结构。
面对时常需要变化的结构,顺序存储是不科学的,因此引入了链式存储结构。
例如医院排队系统叫号,此种情况下只需要关注之前的一位即可。
(2)链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
链式存储结构并不能反映其逻辑关系,因此需要一个指针存放数据元素的地址,通过地址就可以找到相关联数据元素的位置。
链式存储结构的元素在内部存储是随意的,但都拥有地址编号。