数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,主要有三个方面的内容:
数据的逻辑结构;
数据的物理存储结构;
对数据的操作(或算法)。
通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。
逻辑结构:是指数据对象中数据元素之间的相互关系。
其实这也是我们今后最需要关注的问题。逻辑结构分为以下四种:
集合结构。集合中任何两个数据元素之间都没有逻辑关系,组织形式松散。
线性结构。线性结构中的结点按逻辑关系依次排列形成一个“锁链”。
树形结构。树形结构具有分支、层次特性,其形态有点象自然界中的树。
图状结构。图状结构中的结点按逻辑关系互相缠绕,任何两个结点都可以邻接。
1.集合结构
集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。各个数据元素是“平等”的,它们的共同属性是“同属于一个集合”。数据结构中的集合关系就类似于数学中的集合。
2.线性结构
线性结构:线性结构中的数据元素之间是一对一的关系。
线性结构中的数据元素之间是一种线性关系,数据元素一个接一个地排列。如排除的队列、表格中一行行的记录等。
3.树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。树形结构是一层次的嵌套结构。一个树形结构的外层和内层有相似的结构,所以,这种结构多可以递归的表示。
4. 图形结构 图形结构:图形结构中的数据元素是多对多的关系。图形结构的数据元素之间存在着多对多的关系,也称网状结构。从上面的例子也可以看出,逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。物理结构:是指数据的逻辑结构在计算机中的存储形式。
数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机的存储器中。存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。
数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。
数据元素的存储结构形式有两种:顺序存储和链式存储。
1.顺序存储结构
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
2.链式存储结构
链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。