1.1 数据结构起源
现实中,我们利用计算机更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表、树和图等数据结构)的帮助,才能更好地处理问题。数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
1.2 基本概念和术语
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
eg: 鸡鸭鹅之于家禽就是数据元素
数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。
数据对象:性质相同的数据元素的集合,是数据的子集。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
1.3 逻辑结构和物理结构
逻辑结构:是指数据对象中数据元素之间的相互关系。
逻辑结构分为以下四种:1 集合结构 2 线性结构 3 树形结构 4 图形结构
物理结构:数据的逻辑结构在计算机中的存储形式。
即如何把数据元素存储到计算机的存储器中,存储器主要是针对内存而言,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。
1 顺序存储结构 2 链式存储结构(地址连续与否)
逻辑结构面向问题,物理结构面向计算机,其基本目的是将数据及其逻辑关系存储到计算机的内存中。
1.4 抽象数据类型
数据类型:指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
C语言中,按照取值的不同,数据类型可以分为两类:
原子类型:不可再分解的基本类型,如:整型、实型、字符型等。
结构类型:由若干个类型组合而成,可再分解,如:整型数组。
抽象数据类型:(Abstract Data Type,ADT):指一个数学模型及定义在该模型上的一组操作。