1 数据结构的定义
1.1 数据结构中的几个概念
数据:所有能够输入到计算机中,且能被计算机处理的符号的集合
结构化数据实例
数据元素:是数据(集合)中的一个"个体",它是数据的基本单位
数据项:数据项是用来描述数据元素的,它是数据元素的最小单位
数据对象:具有相同性质的若干个数据元素的集合,如整数数据对象是所有整数的集合
默认情况下,数据结构中讨论的数据都是数据对象
数据结构:就是指带结构的数据元素的集合
一个数据的构成
数据元素之间的关系 数据的逻辑结构
数据元素及其关系再计算机存储器中的存储方式 数据的存储结构(或物理结构)
施加在数据上的操作 数据运算
1.2 数据的逻辑结构表示
数据的逻辑结构是面向用户的,它有多种表示形式 如表格,二元组,序偶,图形等
1.3 数据的存储结构表示
数据在计算机存储器中的存储方式就是存储结构
设计存储结构的这种映射应满足两个要求
存储所有元素
存储数据元素间的关系
如:学生表结构1--结构体数组
存放学生表的结构体数组Stud定义如下:
映射过程
这种存储结构的特点:(顺序存储结构)
所有元素占用一整块内存空间.
逻辑上相邻的元素,物理上也相邻
学生表存储结构2--链表
存放学生表的链表的节点类型StudType声明如下:
这种存储结构的特点(链式存储结构):
一个逻辑元素用一个节点存储,每个节点单独分配,所有节点的地址不一定是连续的
用指针来表示逻辑关系
1.4 数据运算
数据运算是对数据进行操作.分两个层次:运算描述和运算实现.
结论:
同一逻辑结构克对应多种存储结构
同样的运算,在不同的存储结构中,其实现过程是不同的
2 数据结构类型
各种各样的数据结构呈现出不同的逻辑结构,归纳为4种
2.1 集合
2.2 线性结构
2.3 树形结构
2.4 图形结构
3 存储结构类型
在软件开发中,人们设计了各种存储结构。归纳为4种基本的存储结构。
顺序存储结构
链式存储结构
索引存储结构
哈希(散列)存储结构
主要的几种存储结构
3.1 顺序存储结构
顺序存储结构采用一组连续的存储单元存放所有的数据元素。
逻辑上相邻的元素的存储单元也相邻。也就是说,元素之间的逻辑关系由存储单元地址间的关系隐含表示,即顺序存储结构将数据的逻辑结构直接映射到存储结构。顺序存储结构可实现对各数据元素的随机存取。即顺序存储结构具有随机存取特性。
随机存取是指给定某元素的逻辑序号i,能在常量时间内查找到对应的元素值。
3.2 链式存储结构
链式存储结构中每个结点单独存储,无需占用一整块存储空间。
但为了表示结点之间的关系,给每个结点附加指针字段,用于存放相邻结点的存储地址。
3.3 索引存储结构
索引存储结构 = 数据表 +索引表。
索引表中的每一项称为索引项,索引项的一般形式为:(关键字,对应地址),其中“对应地址”为该关键字的记录在数据表中的存储地址。
索引表中所有关键字有序排列(如递增)。
索引存储结构特点:
通过索引表按关键字查找速度快增加索引表 存储空间较大
3.4 哈希(散列)存储结构
哈希存储结构 = 哈希函数 +解决冲突方法。
哈希函数H(key)将关键字为 key的元素存放在该地址。
查找关键字为 key的元素时,先计算H(key),由该值和解决冲突方法来确定其存储地址。