第一章:数据结构绪论:
1、数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
2、程序设计=数据结构+算法
【1】基本概念和术语:
数据、数据元素、数据项、数据对象、
(1)数据:描述客观事物的符号,是计算机中可以操作的对 象,是能被计算机识别,并输入给计算机处理的符号集合。
两个前提:可以输入到计算机中,能被计算机程序处理。
(2)数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
(3)数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。
(4)数据对象:是性质相同的数据元素的集合,是数据的子集。
3、数据结构
是相互之间存在一种或者多种特定关系的数据元素的集合。
4、逻辑结构与物理结构
逻辑结构:数据对象中数据元素之间的相互关系。
集合结构、线性结构、树状结构、图形结构
(1)集合结构:集合中数据元素除同属于一个集合外,它们之间没有其他关系。
(2)线性结构:数据元素之间一对一的关系
(3)树状结构:数据元素之间存在一对多的层次关系
(4)图形结构:数据元素是多对多的关系
物理结构:数据的逻辑结构在计算机中存储形式。
顺序存储、链式存储
(1)顺序存储结构:数据元素存放在地址连续的存储单元中,其数据间的逻辑关系和物理关系是一致的。
(2)链式存储:把数据元素放在任意的存储单元里,这组存储单元可以使连续的,也可以非连续。灵活
逻辑结构面向问题,物理结构面向计算机。
数据类型:一组性质相同的值的集合及定义在此集合上的一些操作的总称。
抽象:抽取事物具有的普遍性的本质。
抽象数据类型:一个数学模型及定义在该模型上的一组操作。
算法:
1、算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
2、算法五个基本特性:
输入(大于等于0个)、输出(最少一个)、
有穷性、确定性(无二义性)、可行性。
3、算法设计要求:
正确性、可读性、健壮性、时间效率高、存储量低
4、算法效率的度量方法:
事后统计方法、事前分析估算方法
5、高级程序语言编写的程序在计算机上运行时所消耗的时间取决于
6、算法时间复杂度与空间复杂度
时间复杂度:
常数阶:O(1)
线性阶:O(n)
平方阶:O(n^2)
空间复杂度:
计算算法所需要的存储空间实现。
S(n)=O(f(n))