数据结构的理解
常见数据结构
- 线性数据结构
- 树
- 图
- 查找
- 排序
计算机解决问题的一般步骤
- 建立数学模型
- 设计算法
- 编写程序
- 测试、调试程序,解决问题
数学模型
- 数值模型(数学方程)
- 非数值模型(集合、线性表、树、图等)
- 更多的非数值问题无法使用数学方程描述
例子:
- 图书馆目录检索系统自动化问题(线性数据结构)
- 人机对弈问题(树型数据结构)
- 多岔路口交通灯的管理问题(图型数据结构)
综述
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科
数据基本概念和术语
- 数据(data)客观事务的符号表示,所有能够输入到计算机中并被计算机程序处理的符号的总称
- 数据元素(data element)数据的基本单位,如一棵树中的一个点,图中的一个节点
- 数据对象(data object)性质相同的数据元素的集合
数据结构
数据元素之间的关系------结构
四种基本结构
- 集合
- 线性结构
- 树形结构
- 图状结构/网状结构
数据结构的形式定义
一个二元数组
data_structure=(D,S)
其中:D是数据元素的集合,S是D上关系集合
数据结构的分类
- 逻辑结构:(数据元素之间的逻辑关系)
- 物理(存储)结构:(数据元素在计算机中的存储方法)
按照逻辑结构的不同分为:集合、线性结构、树状结构、网状结构
按照物理结构分为:
顺序结构:
链式结构:
算法与算法设计
- 算法:对特定问题求解步骤的一种描述,是指令的有序序列
- 算法的五个特性:有穷性、确定性、可行性、输入、输出
- 算法设计的要求:时间复杂度,空间复杂度
三种常见的时间复杂度
- O(1)常量级
- O(n)线性级
- O(n2)平方级
- O(2^n)指数级
- O(NlogN)对数