数据结构基础—绪论
数据结构基础—绪论
一、什么是数据结构
数据结构是一门研究非数值计算的程序实际问题中计算机的操作对象以及它们之间关系和操作等的学科
程序设计 = 数据结构 +算法
- 数据结构:问题的数学模型
- 算法:解决问题的策略
在数学模型中又包括了数据的表示和处理
- 处理就是要使用什么样的算法
- 表示就是逻辑结构+存储结构
二、基本概念和术语
1.逻辑结构
数据:输入到计算机中并被计算机程序处理的符号的总称
数据元素:数据的基本单位,是一个大整体(可以类比成结构体)
数据项:是数据的最小单位,多个数据项组成一个数据元素
数据对象:相同性质的数据元素的集合
可以类比数据对象就是一个图书管理,数据元素就是其中的一本本数,而数据项就是每本书的基本信息
数据结构:数据元素和数据元素关系之间的集合
- 集合:最普通,只是集合的关系
- 线性结构:数据元素一对一的关系
- 树形结构:数据元素一对多的关系
- 图状或网状结构:数据元素多对多的关系
2.存储结构
顺序存储:元素在存储器的位置就是数据元素之间的位置
链式存储:元素在存储器的位置是随机的,要用指针来访问
3.抽象数据类型
是数据对象,对象之间的关系和操作的数据类型
三、算法和算法分析
算法的特性:有穷性、确定性、可行性、有输入,有输出
算法设计的要求:正确性、可读性、健壮性、效率和第存储量要求
1.时间复杂度
我们近似用时间复杂度来代替时间复杂频数(频度),即,只取最高阶为当前的时间复杂度,eg:时间频数为n+3->n
时间复杂度的比较
2.空间复杂度
空间复杂度包括:输入数据,程序本身,辅助变量所占的空间
其中,输入数据与算法无关,对于算法要分析辅助变量所占的额外空间