目录
1.1数据结构的研究内容:
N.沃斯(Niklaus Wirth)教授提出:
程序 = 算法+数据结构
电子计算机的主要用途:
- 早期:主要用于数值计算
- 后来:非数值计算,复杂的具有一定结构关系的数据
求解非数值计算的问题:
设计出合适的数据结构及其相应的算法
即:首先要考虑对相关的各种信息如何表示、组织和存储?
数据结构的研究内容为:
研究非数值计算的程序设计问题中的计算机的操作对象以及它们之间的关系和操作。
1.2基本概念和术语:
一、基本概念
1.数据(data)
所有能输入到计算机中去的描述客观事物的符号。
数值性数据
非数值性数据(多媒体信号处理)
2.数据元素(data element)
数据的基本单位,也称为结点(node)或记录(record)
3.数据项(data item)
有独立含义的数据最小单位,也成为域(field)
三者之间的关系:数据>数据元素>数据项
例如:学生表>个人记录>学号、姓名……
4.数据对象(Data Object)
相同特性数据元素的集合,是数据的一个子集
- 整数数据对象:
N = { 0,1,2,3,……}
- 学生数据对象:
学生记录的集合
5.数据结构(Data Structure)
是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构是带“结构”的数据元素的集合,“结构”是指数据元素之间存在的关系。
二、数据结构的两个层次:
1.逻辑结构:
数据元素间抽象化的相互关系,与数据的存储无关,独立于计算机,它是从具体问题抽象出来的数学模型。
划分方法一:
01线性结构:
有且只有一个开始和一个终端节点,而且所有的结点都最多只有一个直接前趋和一个直接后继。
例如:线性表、栈、队列、串
02非线性结构:
一个结点可能有多个直接前趋和直接后继。
例如:树、图
划分方法二:
集合:无关系
线性结构:一对一
树形结构:一对多
图形结构:多对多
2.存储结构(物理结构):
数据元素及其关系在计算机存储器中的存储方式。
(1)顺序存储结构:
借助元素在存储器中的相对位置来表示数据元素间的逻辑关系。
(2)联系存储结构:
借助指示元素存储地址的指针表示数据元素间的逻辑关系。
三、数据的运算:
逻辑结构和存储结构都相同,但运算不同,则数据结构不同。
例如:栈与队列
对于一种数据结构,常见的运算有:
插入、删除、修改、查找、排序