数据结构及其运算 一
3.1 数据结构的基本概念
3.1.4 算法
描述算法的工具
➢ 流程图 ➢ NS图 ➢ 算法描述语言
3.1 数据结构的基本概念
3.1.4 算法
分析评价算法应考虑的因素
➢正确性:在给定有效的输入数据后,算法经过有穷时 间的计算能给出正确的答案。
➢复杂度:时间复杂度,空间复杂度 ➢简单性 ➢最优性: 算法A是最优的是指在给定问题的所有算法中, A执行的运算次数最少 ➢可读性: 要求算法易于理解,便于分析 ➢可修改可扩展性: 如果问题P 的一个算法是A,为了解 答一个与P类似的问题,希望对A稍做改动就可正确运行, 如算法A满足这一点,则说A的可修改性好。
算 √关系运算,主要包括“大于”、“小于”、“等
于”、 “不等于”等运算
√数据传输,主要包括赋值、输入、输出等操作。 ➢算法的控制结构
算法的控制结构给出了算法的基本框架,不仅决定了 算法中各操作的执行顺序,也直接反映算法的设计是否符 合结构化原则。算法一般可以用顺序、选择、循环3种基 本控制结构组合而成。
图2.1中的结点“春”为根结点,结点“冬”为终端 结点;图2.2中的结点“父亲”为根结点,结点“儿子”、 “女儿”都为终端结点
3.1 数据结构的基本概念
3.1.3 数据结构
一个数据结构中的元素结点是动态变化的,具 体表现在:
➢结点(数据元素)个数动态变化。如增加结点(插 入运算)、删除结点(删除运算);
3.1 数据结构的基本概念
数据结构作为计算机的一门学科,主要研究:
√数据集合中各数据元素之间所固有的逻辑关系,即数 据的逻辑结构;
√在对数据进行处理时,各数据元素在计算机中的存储 关系,即数据的存储结构;
√对各种数据结构进行的运算。
研究数据结构的目的是提高数据处理的效率
√提高数据处理的速度; √尽量节省在数据处理过程中所占用的计算机存储空间
图2.3 不是线性结构的数据结构特例
3.1 数据结构的基本概念
3.1.3 数据结构
非线性结构 不是线性结构的数据结构。如图2.2家庭成员
数据结构。 线性结构和非线性结构都可以是空的数据结构。
3.1 数据结构的基本概念
3.1.4 算法
算法是指解题方案的准确而完整的描述。
算法的基本特征
➢有穷性:算法必须能在有限的时间内做完,即算法必 须能在执行有限个步骤之后终止。 ➢确定性:算法中的每一个步骤都必须是有明确定义的, 而不允许有模棱两可的解释,也不允许有多义性。
某种程序设计语言所允许使用的变量种类。
3.1 数据结构的基本概念
3.1.1 一些概念
数据结构
由某一数据对象及该对象中数据成员之间的关系组成。 记为B={D, R}。其中,D是某一数据对象(数据元素的集 合),R是该对象中所有数据成员之间的关系的有限集合。
为了反映D中各数据元素之间的前后件关系(前后数 据元素的逻辑关系),一般用二元组表示。 例1 一年四季的数据结构可表示成
3.1 数据结构的基本概念
3.1.1 一些概念
数据
数据是反映客观事物的信息的集合,是描述客观事物 的数、字符、以及所有能输入到计算机中,被计算机程序 识别和处理的符号的集合。
➢ 数值性数据 非数值性数据
数据对象
某种数据类型的数据元素的集合,是数据的子集。
➢整数数据对象 N = { 0, 1, 2, … }
➢有零个或多个输入 ➢有一个或多个输出 ➢有效性:算法中的每一个步骤必须能够实现,并得到 确定的结果。例如:被零除的计算动作是不能被有效执行 的。
3.1 数据结构的基本概念
3.1.4 算法
算法的基本要素
➢对数据元素的运算和操作 √算术运算,主要包括加、减、乘、除等运算 √逻辑运算,主要包括“与”、“或”、“非”等运
B={D,R},D={春,夏,秋,冬}, R={(春,夏),(夏,秋),(秋,冬)} 例2 家庭成员数据结构可以表示成 B={D,R},D={父亲,儿子,女儿} R={(父亲,儿子),(父亲,女儿)}
3.1 数据结构基本概念
3.1.1 一些概念
数据结构依据视点的不同,分为:
➢ 逻辑结构:反映数据元素之间逻辑关系的数据结构, 属于用户的视图,是面向对象的。
➢学生数据对象 ➢一年四季
3.1 数据结构的基本概念
3.1.1 一些概念
数据元素
简称元素,是数据的最小单位,一个数据元素可以是 单个的数据项,也可以由多个数据项组成,如学生档案包 括学号、年龄、性别等信息;一年四季中的“春”“夏”。
数据项
具有独立含义的最小标识单位。如学生档案中的“学 号”。
数据类型
√线性结构 √非线性结构
3.1 数据结构的基本概念
3.1.3 数据结构
线性结构(线性表)
如果一个非空的数据结构满足:(1)有且只有一个根结 点;(2)每一个结点最多有一个前件,也最多一个后件。 则称该数据结构为线性结构,又称线性表。如一年四季数 据结构为线性结构。 注:在一个线性结构中插入或删除任一个结点后还应是线 性结构,否则不是线性结构。
➢各数据元素之间的关系动态变化。如无序表通过排 序变成有序表;根结点删除,其后件变为根结点;终端结 点插入新结点,原来的终端结点变成内部结点。
3.1 数据结构的基本概念
3.1.3 数据结构
数据结构分类
➢ 根据数据结构中元素数量分: √空的数据结构:数据结构中一个数据元素都没有。 √非空数据结构
➢ 根据数据结构中各数据元素之间前后件关系的复杂程度 分:
数据集合D中的每个数据元素用中间标有元素值的方框表 示,一般称为数据结点;关系R用一条有向线段从前件结 点指向后件结点。
图2.1一年四季数据结构的图形表示
图2.2家庭成员数据结构的图形表示
3.1 数据结构的基本概念
3.1.3 数据结构
结点定义
➢在数据结构中,没有前件的结点称为根结点; ➢没有后件的结点称为终端结点(或叶子结点); ➢除了根结点和终端结点外的其他结点称为内部结点。
➢ 存储结构(物理结构):指数据该如何在计算机中 存放,是数据逻辑结构的物理存储方式,是属于具体实现 的视图,是面向计算机的。常用的存储结构有顺序、链接、 索引等。
两者关系:存储结构是逻辑数据的存储映象,一种数 据的逻辑结构根据需要可以表示成多种存储结构。
3.1 数据结构的基本概念
3.1.2 数据结构的图形表示