数据结构(绪论篇)
数据结构
逻辑结构
存储结构
数据类型
数据结构=数据+结构
数据是描述客观事实的数和字符的集合,人们通常以数据元素作为数据的基本单位,一个数据元素可以由若干个数据项组成。
数据项:是具有独立含义的数据最小单位,也称为字段或域
数据对象:指性质相同的数据元素的集合,它是数据的一个子集。
数据结构:指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在着某种特定关系的数据元素的集合。
注意:数据逻辑结构与数据的存储无关,是独立于计算机的
逻辑结果的表示
(1) 图表表示
(2)二元组表示
B=(D,R)
D={di | 1=<i<=n,n>=0}
R={rj | 1<=j<=m,m>=0}
Di表示集合D中的第i个数据元素
R中的一个关系r是序偶的集合,对于r中的任一序偶<x,y>x,y是相邻的,x为y的直接前驱元素,y为x的直接后继元素。
若某个元素没有前驱元素,则称该元素为开始元素,若某个元素没有后继元素,则称该元素为终端元素。
逻辑结构类型
1. 集合
2. 线性结构(一对一)
3. 树形结构(一对多)
4. 图形结构(多对多)
存储结构
1. 顺序存储结构
优点:存储效率高,可实现对元素的随机存取
缺点:不便于数据修改,对元素的插入或删除操作可能需要移动一系列的元素
2. 链式存储结构
每个逻辑元素用一个内存结点存储,每个节点单独分配,所有节点地址不一定是连续的,无须占用一整块存储空间。
优点:便于数据修改,对元素修改时仅需修改相应的指针域,不必移动结点。
缺点:存储空间利用率低,不能对元素进行随机存取。
3. 索引存储结构:指在存储数据元素信息的同时还建立附加的索引表存储,所有数据元素信息的表称为主数据表,其中每个数据元素有一个关键字和和对应的存储地址。
优点:查找效率快
缺点:需要建立索引表,增加了空间开销。
4. 哈希(散列)存储结构:
根据元素的关键字通过哈希或散列直接计算出一个值,并将这个值作为该元素的存储地址
数据运算
数据运算是指对数据实施的操作,每种数据结构都有一组相应的运算。
数据运算分为运算定义和运算实现两个方面。
运算定义是运算功能的描述,是抽象的,基于逻辑结构的。
运算实现是程序员完成运算是实现算法,是具体的,是基于存储结构的。
数据类型:是一组性质相同的值的集合和定义在此集合上的一组操作的总称,是某种程序设计语言中已实现的数据结构。
c/c++的基本类型有:int型,bool型,float型,double型和char型