一、数据结构基本概念
1、数据>数据元素>数据项
2、数据对象 是具有相同性质的数据元素的集合(是数据子集)
3、数据结构定义:S(D,R,P) ;D:某一数据对象,R:对象中所有数据成员关系集合,P:基本操作
4、数据结构包括:逻辑结构、存储结构、数据的运算
二、数据结构三要素
1.数据的逻辑结构
1、逻辑结构是指数据元素之间的逻辑关系
2、它与数据的存储无关,独立于计算机
3、主要有:集合、线性结构、树形结构、图状结构或网状结构
4、数据的逻辑结构,是面向实际问题角度出发的
2.数据的存储结构
1、存储结构是数据结构在计算机中的表示(又称映像)
2、它包括数据元素的表示和关系的表示
3、它是用计算机语言实现的逻辑结构
4、主要有:顺序存储、链式存储、索引存储、散列(哈希)存储
3.数据运算
1、施加在数据上的运算 包括算法的定义和实现
2、算法的定义(设计)针对逻辑结构;算法的实现针对存储结构
4.小记
1、顺序表(数据结构),线性表的顺序存储;循环队列(顺序表表示的队列);哈希表;单链表;广义表是不同的数据结构(逻辑结构+存储结构+数据运算)
2、有序表(逻辑结构),关键字有序的线性表,仅描述元素之间的逻辑关系,属于逻辑结构。有序表既可链式存储也可顺序存储
3、在存储数据时,不仅要存储数据的值,还要存储数据元素之间的关系
4、链式存储时,不同结点的存储空间可以不连续,但结点内的存储单元地址必须连续
5、不同的数据结构,逻辑结构和物理结构完全可能相同。如二叉树和二叉排序树(二叉排序树 可以 采用二叉树的逻辑表示和存储方式)
6、多型数据类型:数据元素类型不确定
字符串每个字符都是char,所以不是多型数据类型
7、堆是线性数据结构
8、数据的逻辑结构 是对数据之间关系 的描述
9、数据结构的基本操作的设置的最重要的准则是,实现应用程序(逻辑结构)与存储结构的独立。
10、逻辑结构可用不同的存储结构实现,不依赖于存储结构
三、算法
1.基本概念
1、算法是特定问题求解步骤的描述
2、五个特性:有穷性、确定性、可行性、输入、输出
(有穷:有穷步,有穷时间)
3、好的算法:正确性、可读性、健壮性、效率与低存储量需求
2.时间复杂度
一个语句的频度是指该语句在算法中被重复执行的次数。算法中基本运算(最深层循环内的语句)的频度与T(n)同数量级
3.空间复杂度
算法原地工作是指算法所需的辅助空间为常量,即O(1)
4.小记
1、程序 = 数据结构 + 算法
数据结构:如何用数据正确地描述现实世界问题,并存入计算机
算法:如何高效处理这些数据,以解决实际问题
2、某算法时间复杂度为O(n²),表明该算法T(n)=O(n²),则该算法执行时间与n²成正比,问题规模与n成正比
3、写出的死循环不是算法,因为不具有有穷性
4、算法的确定性,是相同输入有相同输出
5、算法的计算量的大小称为 计算的 复杂性
6、算法:解决问题的方法;程序:实现的一个手段
7、数据结构的抽象操作的定义与具体实现无关:抽象操作是外部怎样使用该数据结构;具体实现是内部的事情,外部不需要关心。