数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。
数据元素之间的关系在计算机中有四种表示方法:
- 顺序存储方式:存储位置反映数据元素间的逻辑关系,存储密度大,但插入、删除操作的效率较差。
- 链式存储方式:每个存储结点除包含数据元素信息外还包含一组(至少一个)指针,指针反映数据元素间的逻辑关系,不要求存储空间连续,便于动态操作,但存储空间开销大。
- 索引存储方式:除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。
- 散列存储方式:通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,其特点是存储速度快,只能按关键字随机存取,不能顺序存取。
数据类型是程序设计语言中的一个概念,是用来刻画操作对象的特性,它是一个值的集合和操作的集合。如C语言中的整形、实型、字符型等。
抽象数据类型(ADT)指一个数学模型及定义在该模型上的一组操作。“抽象”的意义在于数据类型的数学抽象特性,其定义仅取决于它的逻辑特性,而与其在计算机内部如何表示和实现无关。
抽象数据类型和数据类型实质上是一个概念。抽象数据类型具有封装特性,对用户透明而不必了解实现细节。抽象数据类型的范围更加广泛。
数据:是对客观事物的符号表示,在计算机科学领域中是指所有能输入到计算机中并能被计算机程序处理的符号总称。
数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据项:数据项是数据的不可分割的最小单位,一个数据元素可由若干个数据项组成。
比较数据结构、逻辑结构和存储结构的概念:
- 数据结构:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合;
- 逻辑结构:数据结构中数据元素之间的逻辑关系;
- 存储结构:数据结构在计算机中的表示(映像)。
比较算法、算法的时间复杂度和频度的概念:
- 算法:是对特定问题求解过程的描述,是指令的有限序列,每条指令完成一个或多个操作;
- 算法的时间复杂度:是度量算法执行的时间长短;
- 频度:是语句的频度,是每一条语句重复执行的次数。