第一章 数据结构与算法
1.1算法
算法基本特性
可行性:在设计一个算法时,必须考虑它的可行性
确定性:算法中的每个步骤必须是明确定义的,不允许模棱两可(向左转还是向右转,而不是转弯)
有穷性:算法必须在执行有限个步骤之后终止
足够的情报:算法要有一定的输入数据和必须要有输出结果
算法的基本要素
时间和空间复杂度
时间复杂度–算法的运算次数
时间复杂度与空间复杂度没有必然联系。但是也有以空间换时间或时间换空间的,此时,它们就会有影响。
1.2 数据结构的基本概念
数据结构
最小单位–数据项
基本单位–数据元素
数据结构的分类
数据结构的逻辑结构
数据结构的存储结构
数据结构的运算
1.3 线性表及其顺序存储结构
线性表
线性表的顺序存储结构
线性表:存储空间连续;按照逻辑顺序依次存放;可以随机访问数据元素;插入、删除需移动大量元素
前后件关系指的是数据的逻辑结构,逻辑结构分成线性结构和非线性结构
算法的空间复杂度是指算法运行所占的存储空间;数据的存储结构是指数据的逻辑结构在计算机中的表示
1.4 栈和队列
栈
栈的特点
E
栈支持子程序的调用
B
队列
队列特点
循环队列
1.5线性链表
线性链表
回顾顺序表(线性表的顺序存储结构)
线性链表的特点
1.6 树与二叉树
树
所有结点中最大的度 称为树的度 3
树的深度 4
二叉树
二叉树的物种基本状态
特殊二叉树:满二叉树,完全二叉树
满二叉树是完全二叉树
二叉树的性质
叶子结点总是比度为二的结点多一个
二叉树的遍历
前序遍历:根左右 ABDGECF
中序遍历:左根右 DGBEAFC
后序遍历:左右根 GDEBFCA