1.绪论
绪论
数据结构的基本概念
数据:信息的载体,是描述客观事件属性的数,字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合
数据元素:是数据的基本单位
数据项:一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位
数据对象:具有相同性质的数据元素的集合,是数据的一个子集
数据结构:相互之间存在一种或多种特定关系的数据元素的集合
例子:
姓名 | 学号 | 年龄 | 成绩 |
---|---|---|---|
candle | 2018114514 | 20 | 98 |
nightswatch | 2018114515 | 22 | 99 |
一个学生的数据可以视作一个数据元素,而姓名,学号等属性可以看做是数据项,多个学生组成了一个数据对象
数据结构三要素
1.逻辑结构
即是数据元素之间的逻辑关系,和实际在计算机中的存储形式没有关系
常见的逻辑结构有:集合结构,线性结构,树形结构,图状结构
2.数据运算
即是针对某种逻辑结构,定义基本运算,或者说是基本操作
比如查找,插入,删除等
通过逻辑结构和数据运算就可以定义一种数据结构了
3.物理结构(存储结构)
物理结构即是数据在计算机中的存储结构
常见的物理结构有:
- 顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现
- 链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系
- 索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中每一项称为索引项,一般由关键字和地址组成
- 散列存储:根据元素的关键字直接计算出该元素的存储地址
存储结构会影响存储空间分配的方便程度和数据运算的速度
算法的基本概念
算法:对特定问题求解步骤的一种描述,是指令的有限序列,其中每条指令表示一个或多个操作
特性:
- 有穷性:一个算法必须总在执行有穷步之后结束,且每一步都可在有穷时间内完成
- 确定性:算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出
- 可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现
时间复杂度和空间复杂度
评估算法的时间开销以及空间(内存)开销的指标
一般是大O表示法
(空间换时间)