一、基本概念
数据
描述客观事物的数值、字符以及能输入计算机且能被处理的各种符号集合,即数据是对客观事物采用计算机能够识别、存储和处理的形式所进行的描述
数据元素
组成数据的 基本单位
数据项是数据不可分割的最小单位
数据对象
性质相同的数据元素的集合
数据类型
- 性质相同的值的集合,以及定义在这个值集合上的一组操作的总称
- 数据类型定义了两个集合,即该值类型的取值范围和该类型中可允许使用的一组运算
- 目的:实现信息隐藏,将用户不必关心的细节封装
- 分类(“值”):
类别 | 可否分解 |
---|---|
结构类型(成分可为非结构的,也可为结构的,如数组、结构体 | 由若干成分按某种结构组成。可分解 |
非结构的原子类型(C语言中的标准类型(整型、实型、字符型等)及指针 | 值不可分解 |
数据抽象与数据抽象类型
数据抽象类型(ADT) 转载博客
三种实现
- 传统的面向过程的程序设计
- “包””模型"的设计方法
- 面向对象的程序设计
二、数据结构
数据结构的内容可归纳为三部分:
- 逻辑结构;
- 存储结构;
- 运算集合;
任何一个算法的设计取决于选定的数据(逻辑)结构,而算法的实现则依赖于采用的存储结构
数据结构
定义
相互之间存在一种或多种特定关系的数据元素的集合;
【注】
数据结构是一个二元组: Data_Structure = (D,R)
其中,D是指数据元素的有限集,R是D上关系的有限集
逻辑结构(数据结构的抽象)
数据元素之间关系的描述
四种基本结构
基本结构 | 关系 |
---|---|
集合结构 | 同属于一个集合 |
线性结构 | 一对一的线性关系 |
树形结构 | 一对多的层次关系 |
图状结构 | 多对多的任意关系 |
存储结构(数据结构的实现)
数据元素在计算机中用若干个==二进制"位串"==表示
数据元素之间的关系在计算机中的表示方法
- 顺序存储:
借助元素在存储器中的相对位置表示数据元素之间的逻辑关系 - 链式存储:
借助指针表示数据元素之间的逻辑关系
数据结构的分类
根据数据元素之间的关系
- 线形结构(线性表、栈、队列、字符串、数组、广义表)
- 非线性结构(树、图)