大话数据结构 Chapter 1 数据结构介绍
数据结构:是相互之间存在一种或者多种特定的关系的数据元素的集合。
程序设计的实质是对确定的问题,选择一种好的数据结构,加上设计一种好的算法。
1. 数据的概念
1.1 数据
数据:描述客观事物的符号,是计算机中可以操作的对象,是能够被计算机识别,并输入给计算机处理的符号集合。
数据就是符号,符号需要具备两个前提:
- 可以输入到计算机中
- 可以被计算机程序处理
1.2 数据元素
数据元素:是数据组成的、有一定意义的基本单位,计算机中通常作为整体处理,也被称为记录。
1.3 数据项
数据项:一个数据元素可以由多个数据项构成。
数据项是不可分割的最小单位。
数据元素是数据结构中建立数据模型的着眼点。
1.4 数据对象
数据对象:是性质相同的元素的集合,是数据的子集。
数据对象是数据的子集。
2. 数据结构
按照视点的不同,数据结构可以分为逻辑结构和物理结构。
2.1 逻辑结构
逻辑结构有四种:
- 集合结构:表征从属关系
- 线性结构:一一对应关系
- 树形结构:一对多的层次关系
- 图形结构:多对多的层次关系
使用示意图表示数据的逻辑结构时,要注意亮点:
- 将每一个数据元素看作一个结点,用圆圈表示
- 元素之间的逻辑关系用连线表示,如果这个关系是有方向的,那么用带箭头的连线表示
2.2 物理结构
数据的物理结构也叫存储结构。
物理结构:是指数据的逻辑结构在计算机中的存储形式。
存储形式有两种:顺序结构和链式结构。
- 顺序结构:把数据元素存放在两次的存储单元里,其数据见的逻辑关系和物理关系是一致的。
- 链式存储结构:把数据元素放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
逻辑结构是面向问题的,物理结构是面向计算机的。
3. 抽象数据类型
3.1 数据类型
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
C语言中,按照取值不同,数据类型可以分为两类:
- 原子类型:不可再分解,整形等;
- 结构类型:有若干类型组合而成,可以再分解,如数组等。
抽象是只抽取出事物具有的普遍性的本质
3.2 抽象数据类型
抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在该模型上的一组操作。
抽象的意义在于数据类型的数学抽象特性。
抽象数据类型提现了程序设计中问题分解、抽象和信息隐藏的特性。