数据结构的概念和术语

数据结构

数据结构

数据结构是相互之间存在一种或多种特定关系的数据元素的集合

程序设计

程序设计=数据结构+算法

数据

数据是秒数客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

数据元素

数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。

比如: 人。

数据项

一个数据元素可以由若干个数据项组成。

数据项是数据分割的最小单位。

比如:人的眼睛、鼻子、头发

逻辑结构

逻辑结构是指数据对象中数据元素的相互关系

逻辑结构是针对具体问题的,为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。

集合结构

集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。

线性结构

线性结构中的数据元素之间是一对一的关系

树形结构

树形结构中的数据元素之间存在一种一对多的层次关系

图形结构

图形结构的数据元素之间是多对多的关系

物理/存储结构

数据的逻辑结构在计算机中的存储形式

数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。

顺序存储结构

顺序存储结构是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

链式存储结构

链式存储结构是指把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。

数据类型

数据类型是指一组性质相同的值的集合及定义在此集合上的一些操作的总称

抽象数据类型

抽象数据类型是指一个数序模型及定义在该模型上的一组操作。

抽象数据类型的定义近取决于它的一组逻辑特性, 而与其在计算机内部如何表示和实现无关。

抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。

算法

算法

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

算法的特性

算法有五个基本的特性:输入、输出、有穷性、确定性和可行性

算法设计的要求

正确性、可读性、健壮性、时间效率高和存储量低

算法效率的度量方法

  1. 事后统计法

  2. 事前分析估算方法

在分析程序的运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或一系列的步骤。

函数的渐进增长

给定两个函数 f(n)和g(n),如果存在一个整数 N ,使得对于所有的 n > N,f(n) 总是比 g(n) 大,那么,我们说 f(n) 的增长渐进快于 g(n)。

算法时间复杂度

定义

在进行算法分析时,语句总的执行次数T(n) 是关于问题规模n的函数,进而分析T(n) 随 n 的变化情况并确定 T(n)的数量级。

算法的时间复杂度,也就是算法的时间量度,计作: T(n) = O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和 f(n) 的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。其中 f(n) 是问题规模n的某个函数。