一、基本概念
1.数据
描述客观事物的符号(文字、数字或其他),是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合
特点:
①可以输入到计算机中
②能被计算机程序处理
③数据不仅包括整型、实型等数值类型,还包括字符及声息、图像、视频等
2.数据元素(数据项组成的一条数据)
组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录,数据元素组成数据
3.数据项(表中的一个属性)
是数据不可分割的最小单位,一个数据元素可由若干个数据项组成
4.数据对象
性质相同的数据元素的集合,是数据的子集
5.数据结构
相互之间存在的一种或多种特定关系的数据元素的集合
数据元素+特定关系=数据结构
现实生活中,不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关称为结构
二、数据的逻辑结构
1.集合结构
①数据结构同属一个集合
②数据元素相互之间没有其他关系
2.线性结构
除了第一个和最后一个数据元素外,每个数据元素只有唯一的前驱取数据元素和一个唯一的后继数据元素,数据元素之间是一对一的
3.树状结构
除根节点外,每个数据元素只有一个唯一的前驱数据元素,可有零个或若干个后继数据元素,数据元素之间存在一种一对多的层次结构
4.图形结构
每个数据元素可有零个或若干个前驱元素和零个或若干个后继元素,数据元素之间是多对多的关系
三、数据的存储结构(物理结构)
数据的逻辑结构在计算机中的存储形式
1.顺序存储结构
把数据元素存储在地址连续的存储单元中,其特点是逻辑上相邻,物理上也相邻,数据间的逻辑关系表现在数据元素的存储位置关系上。采用高级程序设计语言表示时,实现顺序存储结构的方法是使用数组。
指针是指向物理存储单元地址的变量。我们把由数据元素和指针域组成的一个结构体称为一个结点
2.链式存储结构
使用指针把相互直接关联的结点(即直接前驱结点和直接后继结点)链接起来。其特点是逻辑上相邻,物理上不一定相邻,数据间的逻辑关系表现在节点的链接关系上
如图(b),其中上一个结点到下一个结点的箭头表示上一个结点的指针域中保存的下一个结点在内存中的存储地址,head是指向第一个结点的指针,通常称为头指针
四、抽象数据类型
1.数据类型
一个类型和定义在这个类型上的操作
计算机中,内存空间是有限的的,不同类型的数据分配的内存空间大小不同
2.抽象数据类型
一个逻辑概念上的类型和这个类型上的操作集合(用户自己定义的)
五、算法
1.算法
描述求解问题方法的操作步骤集合
2.算法的三种形式
①文字形式②伪码形式③程序设计语言形式
3.算法的性质
①输入性(0或若干输入量)
②输出型(至少一个或一个有意义的操作)
③有限性(语句有限)
④确定性(含义明确)
⑤可执行性(有限时间内完成)
4.算法的设计要求
①正确性②可读性③健壮性④高时间效率性⑤高空间效率
5.算法效率的度量方法
①事后统计法:设计若干测试数据,根据不同算法编写程序,比较这些程序的实际运行时间
②事前分析法:用数学方法直接对算的时间效率进行分析