数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等问题的学科。
数据:描述客观事物的符号,是计算机中可以操作的对象,能被计算机识别,并输入给计算机处理的集合。
声音、图像和视频是可以通过编码手段变成字符数据来处理。总之,一切都是都是把现实世界的概念变成计算机的逻辑描述。
数据元素:组成数据、有一定意义的基本单位,也称为记录。
数据项:一个数据元素由若干数据项组成。不可分割的最小单位。
数据对象:性质相同的数据元素的集合,是数据的子集。(集合论的概念来理解)
数据结构:不同的数据元素之间不是孤立的,而是存在关系的,这些关系可以用某种结构来逻辑表述。
相互之间存在一种或多种特定关系的数据元素的集合。(对象本身属性和对象间的关系)
数据结构两大类:逻辑结构和物理结构 (逻辑结构更多是从数学语义上去描述,物理结构是数据的逻辑结构在计算机中的存储形式,但不可混淆)
逻辑结构:集合结构、线性结构、树形结构和图形结构(逻辑结构都是针对具体问题提出的方法)
物理结构:关键是用存储结构来正确的反映数据元素之间的逻辑关系,分为两类顺序存储和链式存储。
顺序存储--数据元素存放在地址连续的存储单元里,逻辑关系和物理关系一致。
链式存储--数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
逻辑结构是面向问题的,而物理结构是面向计算机的,目标是将数据和其逻辑关系存储到计算机中。
抽象数据类型
数据类型:一组性质相同的值的集合及定义在此集合上的一组操作的总称。(本身含有操作)
抽象数据类型--一个数学模型及定义在该模型上的一组操作(数学上的抽象特性)
程序设计步骤: 分解问题---抽象问题模型---信息隐藏。
抽象数据类型的标准格式:
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作1
初始条件
操作结果描述
操作2
···
操作n
···
endADT