数据结构是什么
计算机加工处理的对象由纯粹的数值发展到字符,表格,图像,音频,视频,等各种具有一定结构的数据。
计算机分析待处理的对象的特性以及各种处理对象之间存在的关系。
用计算机解决一个具体问题:
- 首先要从具体问题中抽象出数学模型
- 设计一个解此数学模型的算法
- 编写程序
- 调试直到得到最终解答
数据结构是一门研究非数值计算的程序设计问题中问题中计算机的操作对象以及它们之间的关系和操作的学科。
数据结构是介于,数学,计算机硬件,计算机软件三者之间的一门核心课程。
数据结构
- 数据:是对所有能输入到计算机中被计算机程序处理的符号的统称。
- 数据元素:数据的基本单位,一个数据元素可由多个数据项组成,每个数据项都是不可分隔的最小单位,如书名,作者等。
- 数据对象:是性质相同的数据元素的集合,是数据的子集。
- 数据结构:元素之间存在的关系叫做结构
—集合结构
—线性结构
—树形结构
—图状结构或网状结构
逻辑结构与存储结构
- 逻辑结构:数据结构的定义仅是对操作对象的一种数学描述,换句话说,是从操作对象抽象出来的数学模型。结构定义中“关系”的描述是数据元素之间的逻辑关系,因此被称为逻辑结构(然而,讨论数据结构的目的是为了在计算机中实现对他的操作,因此还需研究如何在计算机中表示它)。
存储结构:数据结构在计算机中的表示(又称为映像)称为数据的物理结构,又称存储结构,计算机表示的最小单位是bit,在计算机中,我们可以用一个由若干位组合起来形成一个位串表示一个数据元素(如用int表示一个整数,用8bit表示一个字符等),通常称这个位串为元素(element)或节点(node),当数据元素由若干数据项组成时,位串中对应于各个数据项的字串称为数据域(data field)。因此元素或节点可以看成是数据元素在计算机中的映像。
顺序存储结构和链式存储结构
数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构
顺序存储结构的特定是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,例如:3.0-2.3,由两个字长的位串表示一个实数,z1 = 3.0 - 2.3,0300 的位置存放 3.0;0302的位置存放 -2.3;
- 链式存储结构,是借助指示元素存储地址的指针表示数据元素之间的逻辑关系,z1 = 3.0 - 2.3,0415存放-2.3;0611存放3.0;
任何一个算法的设计取决于选定数据的逻辑结构,而算法的实现依赖于采用的存储结构。
**
如何描述存储结构
虚拟存储结构
数据类型
原子类型
计算机软件中,int,float,double,short,long,char,
计算机硬件中,原子类型,位(1个二进制数),字节(8个二进制数),字(2个字节)
结构类型
抽象数据类型(abstract data type简称ADT)
- 原子类型,基本类型
- 固定聚合类型,数据元素的数量是固定的,结构类型
- 可变聚合类型,数据元素的数量是不定的,结构类型
(D,S,P)D是数据对象,S是D的上的关系集,P是对D的操作集
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
其中数据对象,数据关系的定义用伪代码描述,基本操作的定义格式为
基本操作名(参数表)
初始条件:<初始条件描述>
操作结果:<操作结果描述>