数据结构的基本概念
程序设计的实质:
数据表示:将数据存储在计算机中
数据处理:处理数据,求解问题
(1)数据结构的概念和术语
数据:所有能输入到计算机并被计算机处理的符号总和,是计算机化的信息,是计算机操作的对象的总称
数值数据:整数,实数,复数……
非数值数据:字符,字符串,图像,声音
数据元素:数据的基本单位,作为一个整体进行考虑和处理,是数据结构中讨论的基本单位,可以是数据项的集合
一个数据结构由若干个数据项组成
数据项:数据处理中不可分割的最小单位
数据对象:性质相同的数据元素的集合,是数据的一个子集
数据结构(数据的逻辑结构):是相互之间存在的一种或多种特定关系的数据元素的集合
带结构的数据元素的集合
数据元素不是孤立存在的的,它们之间存在着某种关系西,这种数据元素相互之间的关系称为结构
- 集合结构(属于同一个集合)
- 线性结构(除第一个元素外,每一个元素有且只有一个直接前驱)
- 树形结构(一对多)
- 网状结构(多对多)
Data_Structure={D,R}
D是某一数据元素的集合,R是该集合中所有数据元素之间的关系的有限集合
数据结构(数据的物理结构,存储结构):数据结构在计算机中的表示,包括数据元素的表示和关系的表示
存储结构是逻辑关系的映像与元素本身的映像。逻辑结构是数据结构的抽象,存储结构是数据结构的实现,两者综合起来建立了数据元素之间的结构关系
位:计算机中表示信息的最小单位是二进制的一位
数据元素:若干个组合起来形成的一个位串(元素或结点,数据元素在计算机中的映像)表示一个数据元素
数据域:当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域
顺序映射(以数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系)——————>顺序存储结构(整个存储结构只含数据元素本身的信息)
非顺序映射 (以附加信息(指针)表示数据元素之间的逻辑关系)—————>链式存储结构(需要一个和x在一起的附加信息指示y的存储位置)
算法:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列
算法特性:有输入(0个或多个),有输出(1个或多个),确定性,有穷性,可行性
数据结构一般包括:数据的逻辑结构,数据的存储结构,数据的运算(对时局是假的操作)
按某种逻辑关系组织起来的一批数据,按一定的映像方式把它存放在计算机的存储器中,并在这些数据上定义了一个运算的集合,就叫做数据结构
(2)抽象数据类型
1.2.1数据类型
1.2.2数据抽象与抽象数据类型
抽象数据类型:由用户定义,用来表述应用问题的数据模型。由基本的数据类型组成,并包括一组相关的操作。
抽象数据类型的特点:使用与实现分离,实行封装和信息隐蔽
(3)算法和算法分析
1.3.1算法
算法是对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作
算法特性
- 有穷性
- 确定性
- 可行性
- 输入
- 输出
1.3.2算法设计的要求
评价算法的性能标准
- 正确性
程序不含语法错误
程序对于几组输入的数据能够得出满足规格说明要求的结果
程序对于精心选择,典型的,苛刻的机组输入数据能够得到满足规格说明要求的结果
程序对于一切合法的输入数据都能产生满足规格说明要求的结果
- 可读性
- 健壮性
- 效率
1.3.3算法效率的度量
算法的效率包括算法运行时间代价和存储空间代价,分别由时间复杂度和空间复杂度来度量
问题的规模n
时间复杂性T(n)
空间复杂性S(n)
1.算法的时间复杂度
度量一个程序的执行时间:事后统计的方法&事前分析估算的方法
一个算法由控制结构和原操作构成,算法的时间取决于两者的综合效果。
通常做法是:从算法中选取一种对于所研究的问题来说是基本运算的原操作,以该基本操作的重复执行的次数作为算法的时间度量
算法时间度量:T(n)=O(f(n))
算法中基本操作重复执行的次数是问题规模n的某个函数f(n)
除特别指明外,时间复杂度均指最坏情况下的时间复杂度
2.算法的空间复杂度
S(n)=O(f(n))
n为问题的规模
空间固定部分程序指令代码的空间,查那个书,简单变量,定长成分
空间可变部分
算法效率的表达
如果所占空间量依赖于特定的输入,则除特别指明外,均按最坏的情况来分析
(4)面向对象概述
1.4.1面向对象的思想
1.4.2面向对象程序设计
1.4.3面向对象的语言
1.4.4面向对象的基本概念
- 对象
- 对象的特性
- 消息
- 类
1.4.5面向对象的基本特性
1.封装性
2.继承性
3.多态性
(5)习题整理
研究数据结构就是研究(数据的逻辑结构、存储结构及其数据在运算上的实现 )
数据的(逻辑结构 )包括集合、栈、树和图结构4种基本类型。
与数据元素本身的形式、内容、相对位置、个数无关的是数据的( 逻辑结构)
数据的(基本运算 )包括查找、插入、删除、更新、排序等操作类型。
计算机中的算法是指解决某个问题的有限运算序列,它必须具备输入、输出、(可行性、有穷性和确定性)等5个特性。