绪论
数据结构基本概念
数据元素、数据项:数据元素包含数据项,举例:学生这个数据元素里会有姓名、学号等数据项
数据对象:数据对象是相同数据元素的集合
数据类型
原子类型:不可再分的最小数据类型
结构类型:可以再分
抽象数据类型:可以从java中接口理解,既要有属性,也要有方法
数据
记录各个数据元素的值
记录数据元素之间关系
数据结构三要素
逻辑结构:描述的是数据之间的逻辑关系,与怎么存储无关。
线性结构
一般线性表
栈和队列
串
数组
非线性结构
集合
树
图
存储结构:用计算机语言实现的逻辑结构
顺序存储:逻辑相邻,物理相邻
链式存储:逻辑相邻,物理不一定相邻(存储空间不一定相连,但存储的地址一定相邻)
索引存储:通过索引表去查,经典的就是数组下标,就是索引表
散列存储:经典的就是哈希
数据运算
运算定义针对逻辑结构,可以理解为java的抽象类里面定义的抽象方法
运算实现针对存储结构,可以理解为java继承抽象类的子类中对抽象类里面定义的抽象方法的具体实现=
题型
判断一个结构是逻辑结构还是存储结构:
首先要熟悉基本数据结构的实现
判断逻辑结构就是看给出的结构抽不抽象,如果可以用多种存储方式实现就是抽象
判断存储结构就是看具不具体,如果指定了存储方式就是具体
逻辑结构与存储结构之间关系:逻辑结构是独立的,但存储结构依赖于逻辑结构,是逻辑结构在计算机上的实现
## 算法评价 ### 时间复杂度 #### 计算规则 ##### 加法:一个算法的时间复杂度由其中最耗时的决定 ##### 乘法:嵌套的循环里时间复杂度相乘 #### 题型 ##### 嵌套循环的计算: ###### 1 外层循环计算了多少次,在多少次终止 ###### 2 内存循环每次计算了多少次 ###### 3 外层执行一次乘这次内层执行的次数后求和