数据结构-概述
1.1 引言
数据结构指的是数据元素之间的逻辑结构、存储结构及其数据的抽象运算。既按某种逻辑关系组织的一组数据,再按一定的存储表示方式把它们存储在计算机的存储器中,并在这些数据上定义一个运算的集合,这就叫做一个数据结构。
1.2 基本概念和常用术语
数据:描述客观事物的数、字符以及能输入计算机中并被计算机处理的符号的集合。
数据元素:数据的基本单位。由若干数据项(字段、属性、域)组成。
数据对象:具有相同性质的数据元素的集合,是数据的一个子集。
数据结构:是带有结构的数据元素的集合。结构指的是数据元素之间的相互关系,即数据的组织形式,结构中的数据元素成为节点。
- 数据的逻辑结构
数据元素之间的逻辑(抽象)关系称为数据的逻辑结构。
数据的逻辑结构是从逻辑关系上描述数据的,它与数据元素的存储结构无关,是独立于计算机的。
线性结构:数据元素之间存在一对一关系,且结构中仅有一个开始节点和一个终端节点,其余节点都是仅有一个直接前趋节点和一个直接后继节点。
非线性结构:数据元素之间存在着一对多或多对多的关系,即一个节点可能有多个直接前趋和多个直接后继。
该结构包括树形结构、图形结构和网状结构等。
2. 数据的存储结构
数据元素及其关系在计算机内的存储方式,称为数据的存储结构(物理结构)。
数据的存储结构是数据在计算机中的存储表示(映像),亦称作数据的物理结构。它包括数据元素和关系的表示,依赖计算机语言。
1. 顺序存储方法:是把逻辑上相邻的节点存储在物理位置上也相邻的连续存储单元里。
通常是借助于程序设计语言的数组来描述的。
主要应用与线性数据结构,但是非线性数据结构也可通过某种线性化的方法来实现顺序存储。
2. 链接存储方法:是用一组不一定连续的存储单元存储逻辑上相邻的元素,元素间的逻辑关系由附加的指针域表示的。
通常是借助于程序设计语言中的指针来描述的。
3. 索引存储方法:是在存储元素信息的同时,还建立附加的索引表。表中的索引项一般形式是:(关键字,地址)。
关键字是能唯一标识一个元素的一个数据项或多个数据项的组合。
4. 散列存储方法:基本思想是根据元素的关键字,直接计算出来该元素的存储地址。
- 数据的运算
数据的运算,即对数据元素施加的操作(行为)。
数据的运算时定义在数据的逻辑结构上的,每种逻辑结构都有一个运算的集合。
1.3 算法的描述与分析
算法准则:
1. 输入
2. 输出
3. 有穷性
4. 确定性
5. 可行性
算法优劣:
1. 时间复杂性
2. 空间复杂性
3. 可读性&可操作性
时间复杂度:
常数:O(1)
非常数: O(循环语句)