目录
注:部分素材来源于我的大学老师
1、数据(data)
2、数据元素(data element)
3、数据项(data item)
4、数据对象(Data Object)
5、数据结构(Data Structure)
数据结构的两个层次
逻辑结构
存储结构
6.数据的运算
7.数据类型
8.抽象数据类型 (ADTs: Abstract Data Types)
1.描述客观事物的符号,是所有能输入到计算机中并被计算机程序处理的符号的总称
2.可分为: 数值型数据 、非数值型数据(多媒体信息处理)
1.数据的基本单位。
2.在计算机程序中常作为一个整体进行考虑和处理。
3.用于完整地描述一个对象。
4.数据元素又称为元素element、结点node、顶点vertex、记录record。
5.有时一个数据元素可以由若干数据项(Data Item)组成。
1.组成数据元素的、有独立含义的、不可分割的最小单位,也称域(field)
1.相同特性数据元素的集合,是数据的一个子集
例如:
整数数据对象 N = { 0, +1, -2, … }
字母字符数据对象 C={'A','B',…,'Z'}
学生成绩数据对象 Cj={('101','jane',80),
( '102','jack',90 ),
( '103','jerry',75 )}
1.是相互之间存在一种或多种特定关系的数据元素的集合。
2.在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构(Structure)。
3.数据结构是带“结构”的数据元素的集合, “结构”就是指数据元素之间存在的关系。
1.逻辑结构 --- 数据元素间抽象化的相互关系,与数据的存储无关,独立于计算机,它是从具体问题抽象出来的数学模型。
2.存储结构(物理结构)---- 数据元素及其关系在计算机存储器中的存储方式。
(1)线性结构---- 有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个后继。 例如:线性表、栈、队列、串
(2)非线性结构---- 一个结点可能有多个直接前趋和直接后继。 例如:树、图
>> 按数据元素之间关系的不同特性,通常有4类基本结构
(1)集合 结构中的数据元素除了“同属于一个集合”外,别无其它关系。
(2)线性结构 结构中的数据元素之间存在一对一的关系。
(3)树型结构 结构中的数据元素之间存在一对多的关系。
(4)图状结构或网状结构 结构中的数据元素之间存在多对多的关系。
1.数据对象在计算机中的存储表示称为数据的存储结构,也称物理结构。
2.把数据对象存储在计算机时,通常要求既要存储各元素的数据,也要存储数据元素间的逻辑关系。
>>存储结构分为:
(1)顺序存储结构——借助元素在存储器中的相对位置来表示数据元素间的逻辑关系
(2)链式存储结构——借助指示元素存储地址的指针表示数据元素间的逻辑关系
(3)为了查找的方便还采用索引存储方法和散列存储方法。
>>索引存储方法
1.在存储结点信息的同时,还建立附加的索引表,索引表中的每一项称为索引项,每个结点在索引表中都有一个索引项(稠密索引)或一组结点在索引表中对应一个索引项(稀疏索引)。
2.索引项一般形式: (关键字,地址)
3.优点:提高查找速度
4.缺点:增加索引表,降低存储空间利用率
>>散列存储方法
1.基本思想:根据关键字值通过哈希(散列)函数计算结点存储位置
2.哈希表不存储结点之间的逻辑关系
3.优点:查找速度快
4.应用场合:对数据能快速查找和插入的场合
1.逻辑结构和存储结构都相同, 但运算不同, 则数据结构不同. 例如, 栈与队列
2.对于一种数据结构, 常见的运算: 插入 删除 修改 查找 排序
1.定义:在一种程序设计语言中,变量所具有的数据种类
>>FORTRAN语言:整型、实型、和复数型
>>C语言: 基本数据类型: char int float double void
>>构造数据类型:数组、结构体、共用体、文件
2.不同类型的变量,其所能取的值的范围不同,所能进行的操作不同。
3.数据类型是一组性质相同的值的集合, 以及定义于这个集合上的一组运算的总称
>> 如C/C++中的int就是整型数据类型。
>>它是所有整数的集合(在16位计算机中为-32768~32767的全体整数)和相关的整数运算(如+、-、*、/等)。
1.指的是用户进行软件系统设计时从问题的数学模型中抽象出来的逻辑数据结构和逻辑数据结构上的运算,而不考虑计算机的具体存储结构和运算的具体实现算法。
2.抽象数据类型=逻辑结构+抽象运算
3.抽象数据类型实质上就是描述一个求解问题本身(与计算机无关),计算机人员就是在理解问题基础上实现用计算机求解问题的过程。