数据结构起源
数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
- 数值计算与非数值计算
- 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。
- 程序设计 = 数据结构+算法
数据结构基本术语
数据
-
数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符合集合。(数据的形式化定义)
-
数据包括整形、实数型等数值类型,还包括字符及声音、图像、视频等非数值类型。但非数值类型并不能直接存储,而是以字符编码所存储。
-
数据其实就是符号,而这些符号必须具备两个前提:
① 可以输入到计算机中。
② 能被计算机程序处理。
数据元素
数据元素是组成数据的、有一定意义的基本单位,在计算机中通常被作为整体(一个小的分子)处理。也被称为记录。
数据项
一个数据元素可以由若干个数据项(原子)组成。数据项不可再分。但是在研究我们数据结构的时候,是基于分子的,即数据元素本身。
数据对象
是性质相同的数据元素的集合,是数据的子集。所谓性质相同是指数据元素的数据项具有相同的结构。数据对象一般意义上成为数据。
数据结构
-
结构,是指系统的各个组成部分相互搭配和排列的方式。在现实世界中,不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系成为结构。
-
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。即数据对象(数据元素的集合)+数据元素(节点)之间的关系(线性与非线性)
数据结构的两种模式(与冯诺依曼体系相关)
- 逻辑结构:是指数据对象中数据元素之间的相互关系
① 集合结构:数据元素除了同属一个集合外,没有其它关系。就是数学中的集合。
① 顺序存储结构:是指数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。例如数组。
② 链式存储结构:把数据元素存放在任意的存储单元中,这组存储单元可以是连续的,也可以不是不连续的。每一个元素包含了下一个元素的地址信息,通过指针保存。物理上不是一一对应的,而逻辑上是一一对应的。
③ 索引结构:关键字与地址一一对应,属于广义上的映射。
④ 散列结构:哈希--->存在函数(映射)关系,通过关键字查询
3. 数据类型与抽象数据类型
3.1 数据类型
一组性质相同的值的集合,以及定义在此集合上的一些操作(运算)的总称。 比如int型、boolean型等都属于数据类型;int型是由一系列整数组成,这些整数便是一组性质相同的值的集合,而boolean型是由两个值TRUE和FALSE组成。
3.2 抽象数据类型
Abstract Data Type,ADT;一个数学模型及定义在该模型上的一组操作。ADT只与逻辑有关,与具体在计算机中的表示和实现无关。