数据结构基本概念
引言
本文可以了解数据结构的数据、数据元素、数据的逻辑结构和存储结构的相关概念。
掌握数据结构包含的3个方面,逻辑结构的分类、基本逻辑结构、顺序存储和链式存储的方法。
数据
数据是信息的载体。他能够被计算机识别、存储和加工处理,是计算机程序的加工的“原料”,随着计算机应用领域的扩大,数据的范畴也随之扩大,包括整数、实数、字符串、图像和声音等。
数据元素
是数据的基本单位,也称为元素、结点、顶点、记录等等。
数据项
也称字段、域、属性,是具有独立含义的最小标识单位。一个数据元素可以由若干个数据项组成。
数据结构
数据结构指数据元素之间的相互关系,即数据的组织形式。数据结构一般包含以下三个方面:
- 数据的逻辑结构
- 数据的存储结构
- 数据的运算
数据的逻辑结构
数据的逻辑结构是一种抽象结构,是指数据元素之间的逻辑关系,与数据的存储无关,是独立与计算机的,是从具体问题抽象出来的数学模型。
数据逻辑结构的形式定义:数据结构是一个二元组 (D, R),其中 D 是数据元素的有限集,R 是 D 上关系的有限集。
数据的逻辑结构分为线性结构和非线性结构两种。
- 线性结构的特征:有且仅有一个开始结点和终端结点,且所有结点都最多只有一个直接前驱和一个直接后继。
- 非线性结构的特征:一个结点可能有多个直接前驱的多个直接后继。
基本的逻辑结构:
- 结合结构:数据元素的有限集合。数据元素之间除了“属于同一个集合”的关系之外没有其它关系。
- 线性结构:数据元素的有序集合。数据元素之间形成一对一的关系。
- 树形结构:树是层次数据结构。树中的元素之间存在多对多的关系。
- 图形结构:图中数据之间的关系是多对多的。
数据的存储结构
数据的存储结构是物理结构,是指数据元素和数据元素之间的逻辑关系在计算机存储器内的表示。
存储方法:
- 顺序存储方法:把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。顺序存储结构通常是借助于程序语言的数组来描述的。
- 链式存储方法:该方法不要求逻辑上相邻的结点在物理位置上也相邻,结点之间的逻辑关系是由附加的指针字段来表示的。由此得到的存储表示称为链式存储结构。链式存储结构通常借助于程序语言的指针来描述的。
- 索引存储方法:在建立结点信息的同时,还要建立附加的索引表来表示结点的地址。索引表的每一项称为索引项,索引项由该节点的关键字和存储地址表示,关键字是唯一标识一个结点的数据项。
- 散列存储方法:这种方法是根据结点的关键字直接计算出该节点的存储地址。因此好的散列算法决定了该方法的存储效率。
以上4种存储方法即可单独使用,也可组合使用
数据的运算
数据的运算即对数据施加的操作。数据的运算定义在数据的逻辑结构上,只有确定了存储结构,才能具体实现这些运算。
数据的运算通常包含以下5个操作:
- 插入:在指定位置上添加一个新结点。
- 删除:删去指定位置的结点。
- 更新:修改结点的值。
- 查找:查询满足指定条件的结点及其位置。
- 排序:按指定的顺序使结点重新排列。