一、基本概念及术语
1、数据结构的研究内容
-
数据的各种逻辑结构和物理结构,以及他们之间的相应关系
-
对每种结构定义相适应的各种运算
-
设计出相应的算法
-
分析算法的效率
2、相关概念
1、数据结构的研究内容
-
数据的各种逻辑结构和物理结构,以及他们之间的相应关系
-
对每种结构定义相适应的各种运算
-
设计出相应的算法
-
分析算法的效率
2、相关概念
-
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。
-
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。(人的数据元素是人;禽类的数据元素牛、马、羊、鸡、猪、狗等动物)
-
数据项:一个数据元素可以由若干个数据项组成。 数据项是数据不可分割的最小单位。
扫描二维码关注公众号,回复: 13600070 查看本文章 -
数据对象:是性质相同的数据元素的集合,是数据的子集。
-
数据结构:相互之间存在一种或多种特定关系的数据元素的集合
-
数据结构的逻辑结构:可分为线性结构和逻辑结构
-
线性结构:数据元素(结点)之间存在一对一的关系,且结构中仅有一个开始结点和一个终端结点,其余结点都是仅有一个直接前趋和一个直接后趋
-
非线性结构:数据元素之间存在着一对多或多对多的关系,即一个结点可能有多个直接前趋和多个直接后趋
二、逻辑结构与物理结构
1、逻辑结构
逻辑结构:是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种:
(1)、集合结构
集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。
(2)、线性结构
线性结构中的数据元素之间是一对一的关系。
(3)、树形结构
树形结构中的数据元素之间存在一种一对多的层次关系。
(4)、图形结构
图形结构的数据元素是多对多的关系。
注意:在用示意图表示数据的逻辑结构时:
1、将每一个数据元素看做一个结点,用圆圈表示。
2、元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,那么用带箭头的连线表示。
2、物理结构
是指数据的逻辑结构在计算机中的存储形式。分为顺序存储和链式存储。
(1)、顺序存储结构
是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
(2)、链式存储结构
是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
逻辑结构是面向问题的,而物理结构就是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。
三、数据类型和抽象数据类型
1、数据类型
一般包括整型、实型、字符型等原子类型外,还有数组、结构体和指针等结构类型。
在C语言中,按照取值的不同,数据类型可以分为两类:
-
原子类型:是不可再分解的基本类型,包括整型、实型、字符型。
-
结构类型:由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干个整型数据组成的。
2、抽象数据类型
抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在该模型上的一组操作。类似C语言中的结构体以及C++、java语言中的类。
抽象数据类型把实际生活中的问题分解为多个规模小且容易处理的问题,然后建立一个计算机能处理的数据模型,并把每个功能模块的实现细节作为一个独立的单元,从而使具体实现过程隐藏起来。
四、算法
1、算法定义
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
2、算法特性
-
有穷性
-
确定性
-
可行性
-
输入
-
输出
3、评价算法优劣的基本标准
-
正确性
-
可读性
-
健壮性
-
高效性
4、算法与程序的区别
算法+数据结构=程序
5、算法的时间复杂度
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。
算法的时间复杂度,也就是算法的时间度量,记作:
表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。
6、算法的空间复杂度
算法的空间复杂度通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作:
其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数。