数据类型
- 是指一组值和一组对这些值的操作的集合;原则上所有的程序语言只需要使用原始数据类型即可,为了在更高层次的抽象上编写程序会更加方便;
原始类型
- 布尔
- 字符
- 浮点
- 定点数
- 整型:固定精度的值
- 引用:指针或者句柄
- 枚举类型
- 日期类型
组合类型非原始类型
- 数组
- 记录:关联数组,映射,结构
- 联合
数据结构
实现了数据类型的物理形式;
数据结构决定数据的顺序和位置关系;
案例:电话簿的存储方式
- 顺序存储法;
优点: 新增快;不用考虑位置; 缺点: 查询满;只能遍历对比;
- 分组存储法;(按照姓名的字面的排序
优点: 查询快; 缺点: 新增慢;
- 数据结构的作用: 根据使用的目的来选择合适的数据结构,可以提高内存利用率,以及数据操作效率;
- 数据在内存中是呈线性排列的,我们可以使用指针等道具,构造出类似的
树形
的复杂结构;
数据结构分类
- 线性数据结构
- 树
- 基于哈希的结构
- 图
- 其他
案例:
- 关系型数据库使用B-tree索引进行数据检索;
- 编译器使用哈希表来查找身份;
array
linked list
record
- 也被叫做元组或者结构体;是一个集体的数据结构;
union
- 指定可以在其实例中存储许多允许的基元类型中的哪一种;
tagged union
- 也叫做变体,变体记录,可区分的联合,不相交并集
object
- 包含数据字段;
数据结构的存储模型
- 只有两种存储数据结构的方式: 数组(序列存储)和链表(链式存储);
各种数据结构的遍历和访问都属于两种类型中的一种:
- 线性;
- 线性代表迭代;
- 非线性;
- 非线性代表递归;
数据结构如何用来解决问题
- 根据问题分析出需要使用的数据结构(数据模型