数据结构及其运算 一PPT学习教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中的其他元素的。 ➢ 栈顶元素总是最后被插入的元素,也是最先能被删
除的元素;栈底元素总是最先被插入的,也是最后才能被 删除的:先进后出,后进先出
➢ 具有记忆功能
第26页/共63页
3.2 线性表及其顺序存储结构
3.2.2 栈及其应用
什么是栈
用指针top指示栈顶的位置,用指针bottom指向栈 底。
往栈中插入一个元素称为入栈运算;从栈中删除一个 元素称为退栈运算。
栈的示意图。
第27页/共63页
3.2 线性表及其顺序存储结构
3.2.2 栈及其应用
栈的顺序存储及其运算
在程序设计语言中,用一维数组S(1:m)作为栈的顺 序存储空间,m为栈的最大容量。栈底指针指向栈空间的 低地址一端(数组的起始地址这一端)。
第28页/共63页
3.2 线性表及其顺序存储结构
3.2.2 栈及其应用
➢ 根据数据结构中各数据元素之间前后件关系的复杂程度 分:
√线性结构 √非线性结构
第8页/共63页
3.1 数据结构的基本概念
3.1.3 数据结构
线性结构(线性表)
如果一个非空的数据结构满足:(1)有且只有一个根结 点;(2)每一个结点最多有一个前件,也最多一个后件。 则称该数据结构为线性结构,又称线性表。如一年四季数 据结构为线性结构。 注:在一个线性结构中插入或删除任一个结点后还应是线 性结构,否则不是线性结构。
3.1.2 数据结构的图形表示
数据集合D中的每个数据元素用中间标有元素值的方框表 示,一般称为数据结点;关系R用一条有向线段从前件结 点指向后件结点。 图2.1一年四季数据结构的图形表示
图2.2家庭成员数据结构的图形表示
第5页/共63页
3.1 数据结构的基本概念
3.1.3 数据结构
结点定义
➢在数据结构中,没有前件的结点称为根结点; ➢没有后件的结点称为终端结点(或叶子结点); ➢除了根结点和终端结点外的其他结点称为内部结点。
线性表 √矩阵:每一行看成一个数据元素(或每一列看成一个
数据元素)的线性表,其中每一个数据元素(一个行向量或 一个列向量)又是一个简单的线性表
第16页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
什么是线性表
➢线性表例子 √学生登记表,每个学生组成表的每个元素,每个元
素包括姓名、学号、性别、年龄和健康状况5个数据项。 由若干数据项组成的数据元素称为记录,由多个记录
3.1 数据结构的基本概念
3.1.4 算法
分析评价算法应考虑的因素
➢正确性:在给定有效的输入数据后,算法经过有穷时 间的计算能给出正确的答案。
➢复杂度:时间复杂度,空间复杂度 ➢简单性 ➢最优性: 算法A是最优的是指在给定问题的所有算法中, A执行的运算次数最少 ➢可读性: 要求算法易于理解,便于分析 ➢可修改可扩展性: 如果问题P 的一个算法是A,为了解 答一个与P类似的问题,希望对A稍做改动就可正确运行, 如算法A满足这一点,则说A的可修改性好。
算法的基本特征
➢有穷性:算法必须能在有限的时间内做完,即算法必 须能在执行有限个步骤之后终止。 ➢确定性:算法中的每一个步骤都必须是有明确定义的, 而不允许有模棱两可的解释,也不允许有多义性。
➢有零个或多个输入 ➢有一个或多个输出 ➢有效性:算法中的每一个步骤必须能够实现,并得到 确定的结果。例如:被零除的计算动作是不能被有效执行 的。
在程序设计语言中,通常定义一个一维数组V(1:m)来 表示线性表的顺序存储空间,m为存储空间大小。
第15页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
什么是线性表
➢线性表例子 √n维向量(x1,x2,…,xn):长度为n的线性表 √英文小写字母表(a,b,c,…,z)是一个长度为26的线性表 √一年中的4个季节(春,夏,秋,冬)是一个长度为4的
图2.1中的结点“春”为根结点,结点“冬”为终端 结点;图2.2中的结点“父亲”为根结点,结点“儿子”、 “女儿”都为终端结点
第6页/共63页
3.1 数据结构的基本概念
3.1.3 数据结构
一个数据结构中的元素结点是动态变化的,具 体表现在:
➢结点(数据元素)个数动态变化。如增加结点(插 入运算)、删除结点(删除运算);
栈的顺序存储及其运算
➢ 入栈运算:在栈顶位置插入一个新元素。 设栈顺序存储空间为S(1:m),栈顶指针为top,如栈的元
素为x,则入栈运算的操作过程为: √如果 top=m (栈空间已满),上溢错误,算法结束 √栈顶指针top加1; √新元素x插入到top指向的位置。
➢ 从第i+1个元素开始,直到最后一个元素,每个元 素都依次往前移动一个位置
➢ 线性表的长度减1。
第25页/共63页
3.2 线性表及其顺序存储结构
3.2.2 栈及其应用
什么是栈 栈(stack)是限定在一端进行插入和删除的线性表,其
特点为: ➢ 一端是封闭的,不允许进行插入和删除操作(栈
底);另一端是开口的,允许插入和删除(栈顶); ➢ 在顺序存储结构中,插入和删除操作不需要移动表
没有考虑到的异常情况: ➢ 线性表为空时; ➢ i<1时:没有该元素; ➢ i>n时:没有该元素;
第24页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
线性表在顺序存储下的删除运算
在存储空间大小为m,长度为n的线性表中,在位置i删除元 素(删除第i个元素),则删除过程为
➢ 处理异常情况 √ n=0时,下溢错误,算法结束。 √ i<1或i>n时,没有该元素,算法结束。
构成的线性表称为文件。
第17页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
线性表的顺序存储结构
在计算机中存放线性表,最简单的方法是顺序存储, 也称顺序分配,其特点为:
➢线性表中所有元素所占的存储空间是连续的; ➢线性表中各元素在存储空间中是按逻辑顺序依次存 放的。 即在线性表的顺序存储结构中,前后件两个元素在存 储空间中是紧邻的,且前件元素一定存储在后件元素的前 面。
算法的控制结构给出了算法的基本框架,不仅决定了 算法中各操作的执行顺序,也直接反映算法的设计是否符 合结构化原则。算法一般可以用顺序、选择、循环3种基 本控制结构组合而成。第12页/共63页
3.1 数据结构的基本概念
3.1.4 算法
描述算法的工具
➢ 流程图 ➢ NS图 ➢ 算法描述语言
第13页/共63页
第18页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
线性表的顺序存储结构
如果线性表各元素所占的存储空间(字节数)相等 (k个字节),第一个数据元素的存储地址(指第一个字 节的地址,即首地址)为Adr(a1),则线性表中第i个元素在 计算机存储空间中的存储地址为
Adr(ai)=Adr(a1)+(i-1)k
B={D,R},D={春,夏,秋,冬}, R={(春,夏),(夏,秋),(秋,冬)} 例2 家庭成员数据结构可以表示成 B={D,R},D={父亲,儿子,女儿} R={(父亲,儿子),(父亲,女儿)}
第3页/共63页
3.1 数据结构的基本概念
3.1.1 一些概念
数据结构依据视点的不同,分为:
➢ 逻辑结构:反映数据元素之间逻辑关系的数据结构, 属于用户的视图,是面向对象的。
线性表在顺序存储下的删除运算
删除运算:在线性表中删除指定的元素。 线性表在顺序存储结构下的删除例子
第23页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
线性表在顺序存储下的删除运算
一般情况下,要删除第i (1≤i≤n)个元素时,则从 i+1个元素开始,直到第n个元素之间共n-i个元素依次向 前移动一个位置。删除结束后,线性表长度加1。
图2.3 不是线性结构的数据结构特例
第9页/共63页
3.1 数据结构的基本概念
3.1.3 数据结构
非线性结构 不是线性结构的数据结构。如图2.2家庭成员
数据结构。 线性结构和非线性结构都可以是空的数据结构。
第10页/共63页
3.1 数据结构的基本概念
3.1.4 算法
算法是指解题方案的准确而完整的描述。
数据类型
某种程序设计语言所允许使用的变量种类。
第2页/共63页
3.1 数据结构的基本概念
3.1.1 一些概念
数据结构
由某一数据对象及该对象中数据成员之间的关系组成。 记为B={D, R}。其中,D是某一数据对象(数据元素的集 合),R是该对象中所有数据成员之间的关系的有限集合。
为了反映D中各数据元素之间的前后件关系(前后数 据元素的逻辑关系),一般用二元组表示。 例1 一年四季的数据结构可表示成
没有考虑异常情况: ➢ 存储空间已满情况 ➢ i>n:在最后一个元素之后插入 ➢ i<1:第1个元素之前插入
第21页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
线性表在顺序存储下的插入运算
在存储空间大小为m,长度为n的线性表中,在位置i插 入(第i个元素之前插入)新元素,则插入过程为
➢ 处理异常情况 √ n=m时,上溢错误,算法结束。 √ i>n+1时,i=n+1(i>n时,i=n+1) √ i<1时,i=1
➢ 从最后一个元素开始,直到第i个元素,每个元素 都往后移动一个位置
➢ 新元素插入到第i位置 ➢ 线性表的长度增1。
第22页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
➢学生数据对象 ➢一年四季
第1页/共63页
3.1 数据结构的基本概念
3.1.1 一些概念
数据元素
简称元素,是数据的最小单位,一个数据元素可以是 单个的数据项,也可以由多个数据项组成,如学生档案包 括学号、年龄、性别等信息;一年四季中的“春”“夏”。
数据项
具有独立含义的最小标识单位。如学生档案中的“学 号”。
第11页/共63页
3.1 数据结构的基本概念
3.1.4 算法
算法的基本要素
➢对数据元素的运算和操作 √算术运算,主要包括加、减、乘、除等运算 √逻辑运算,主要包括“与”、“或”、“非”等运
算 √关系运算,主要包括“大于”、“小于”、“等
于”、 “不等于”等运算
√数据传输,主要包括赋值、输入、输出等操作。 ➢算法的控制结构
➢各数据元素之间的关系动态变化。如无序表通过排 序变成有序表;根结点删除,其后件变为根结点;终端结 点插入新结点,原来的终端结点变成内部结点。
第7页/共63页
3.1 数据结构的基本概念
3.1.3 数据结构
数据结构分类
➢ 根据数据结构中元素数量分: √空的数据结构:数据结构中一个数据元素都没有。 √非空数据结构
➢ 存储结构(物理结构):指数据该如何在计算机中 存放,是数据逻辑结构的物理存储方式,是属于具体实现 的视图,是面向计算机的。常用的存储结构有顺序、链接、 索引等。
两者关系:存储结构是逻辑数据的存储映象,一种数 据的逻辑结构根据需要可以表示成多种存储结构。
第4页/共63页
3.1 数据结构的基本概念
数据结构及其运算 一
会计学
1
3.1 数据结构的基本概念
3.1.1 一些概念
数据
数据是反映客观事物的信息的集合,是描述客观事物 的数、字符、以及所有能输入到计算机中,被计算机程序 识别和处理的符号的集合。
➢ 数值性数据 非数值性数据
数据对象
某种数据类型的数据元素的集合,是数据的子集。
➢整数数据对象 N = { 0, 1, 2, … }
2执行主程序执行主程序mainmain当要调用子程序当要调用子程序sub1sub1时时将本次将本次调用的返回点地址调用的返回点地址aa入栈栈数据为3开始调用执行子程序开始调用执行子程序sub1sub1当要调用子程序当要调用子程序sub2sub2时将本次调用的返回点地址将本次调用的返回点地址bb入栈栈数据为4开始调用执行子程序开始调用执行子程序sub2sub2当要调用子程序当要调用子程序sub3sub3时将本次调用的返回点地址将本次调用的返回点地址cc入栈栈数据为5开始调用执行子程序开始调用执行子程序sub3sub3当要调用子程序当要调用子程序sub4sub4时将本次调用的返回点地址将本次调用的返回点地址dd入栈栈数据为第33页共63页322322栈及其应用栈及其应用栈的应用栈的应用6开始调用执行子程序开始调用执行子程序sub4sub4由于子程序不再调用其由于子程序不再调用其他子程序执行完该子程序后执行退栈操作从而取得他子程序执行完该子程序后执行退栈操作从而取得sub3sub3的返回地址的返回地址dd栈数据为7返回到子程序返回到子程序sub3sub3的的dd处执行完子程序处执行完子程序sub3sub3后执行退栈操作取得行退栈操作取得sub2sub2的返回地址的返回地址cc栈数据为栈数据为ab
第19页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
线性表在顺序存储下的插入运算
插入运算:在线性表的指定位置处加入一个新的元素。 线性表在顺序存储结构下的插Байду номын сангаас例子。
第20页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
线性表在顺序存储下的插入运算
在一般情况下,要在第i(1≤i≤n)个元素之前插入一 个新元素时,首先要从最后一个(第n个)元素开始,直到 第i个元素之间共n-i+1个元素依次向后移动一个位置,移 动结束后,第i个位置空出,将新元素插入到该位置。插 入结束后,线性表的长度增1。
第14页/共63页
3.2 线性表及其顺序存储结构
3.2.1 线性表及其运算
什么是线性表
线性表是最简单、最常用的一种数据结构,非空线性 表特征:
➢有且只有一个根结点; ➢有且只有一个终端结点; ➢除根结点和终端结点外,其他所有结点有且只有一个 前件,也有只有一个后件。
线性表中结点的个数为线性表的长度,长度为0时, 称为空表。
相关文档
最新文档