欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    2019毕业答辩ppt模板-安徽大学.ppt

    • 资源ID:2784058       资源大小:176.52KB        全文页数:26页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2019毕业答辩ppt模板-安徽大学.ppt

    1,线性结构的定义:,若结构是非空有限集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。 可表示为:(a1 , a2 , , an),简言之,线性结构反映结点间的逻辑关系是 的。,特点 只有一个首结点和尾结点; 特点 除首尾结点外,其他结点只有一个直接前驱和一个直接后继。,线性结构包括:线性表、堆栈、队列、字符串、数组等,其中最典型、最常用的是-,线性表,一对一 (1:1),2,第2章 线性表,2.1 线性表的基本概念 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示和实现 2.4 应用举例,3,2.1 线性表的基本概念,、线性表 它是一种最简单的线性结构。是一种可以在任意位置进行插入和删除数据元素操作的,由n(n0)个相同类型数据元素a0, a1, , an-1组成的线性结构。,4,(a0, a1, ai-1,ai, ai1 ,, an-1),线性表的逻辑结构:,n=0时称为,数据元素,线性起点,ai的直接前趋,ai的直接后继,下标,是元素的序号,表示元素在表中的位置,n为元素总个数,即表长。n0,空表,线性终点,5,( A, B, C, D, , Z),例2 分析学生情况登记表是什么结构。,分析:数据元素都是同类型(记录),元素间关系是线性的。,分析: 数据元素都是同类型(字母), 元素间关系是线性的。,注意:同一线性表中的元素必定具有相同特性 !,例1 分析26 个英文字母组成的英文表是什么结构。,6,、线性表抽象数据类型,它包括两个方面: 数据集合: a0, a1, , an-1 ai的数据类型为DataType 操作集合:(1)ListInitiate(L) 初始化线性表 (2)ListInsert(L,i,x) 插入数据元素 (3)ListLength(L) 求当前数据元素个数 (4)ListDelete(L,i,x) 删除数据元素 (5)ListGet(L,i,x) 取数据元素 等,7,3、线性表的存储结构,(1)顺序存储结构:它是使用一片地址连续的有限内存单元空间存储数据元素的一种计算机存储数据方法。 特点:(任意两个在逻辑上相邻的数据元素在物理位置上也必然相邻)逻辑上相邻的元素,物理上也相邻。 (2)链式存储结构:它是把数据元素和指针定义成一个存储体,使用指针把发生联系的数据元素链接起来的一种计算机存储数据方法。 特点:任意两个在逻辑上相邻的数据元素在物理上不一定相邻,数据元素的逻辑次序是通过链中的指针链接实现的。,8,2.2 线性表的顺序表示和实现,一 、顺序表的存储结构 二、 顺序表的实现 三、 顺序表的运算效率分析,9,一、 顺序表的存储结构表示,1、顺序表:用一组地址连续的存储单元依次存储线性表的各个数据元素。即采用顺序存储结构的线性表。它通常采用静态数组实现数据元素的存储。,可以利用数组Vn来实现,注意:在C语言中数组的下标是从0开始,即: Vn的有效范围是从 V0Vn-1,10,(1) 逻辑上相邻的数据元素,其物理上也相邻; (2) 若已知表中首元素在存储器中的位置,则其他元素存放位置亦可求出(利用数组Vn的下标)。,设首元素a0的存放地址为LOC(a0)(称为首地址), 设每个元素占用存储空间(地址长度)为L字节, 则表中任一数据元素的存放地址为: LOC ( ai+1 ) = LOC( ai ) + L LOC ( ai ) = LOC( a0 ) + L *i,对上述公式的解释如图所示,2、线性表顺序存储特点:,11,地址 内容 元素在表中的位序,0,i,1,n-1,空闲区,i+1,L,b=LOC(a0),b + L,b +iL,b +(n-1)L,b +(MaxSize-1)L,LOC ( ai ) = LOC( a0 ) + L *i,3、线性表的顺序存储结构示意图,12,4、用C语言描述,typedef struct DateType listMaxSize; int size; SeqList; /* MaxSize表示数组的最大元素个数,list表示顺序表的数组名,size表示顺序表中当前存储的数据元素个数,它必须满足size MaxSize,SeqList是该结构体的名字。*/,13,设有一维数组,下标的范围是到,每个数组元素用相邻的个字节存储。存储器按字节编址,设存储数组元素的第一个字节的地址是,则的第一个字节的地址是多少?,113,LOC( M3 ) = 98 + 5 ×3 =113,解:已知地址计算通式为:,LOC(ai) = LOC(a0) + L *i,例1,14,char V30; void build() /*字母线性表的生成,即建表操作*/ int i; V0='a' for( i=1; i=n-1; i+ ) Vi=Vi-1+1; ,核心语句: 方法1 Vi= Vi-1+1; 方法2 Vi=a+i; 方法3 Vi=97+i;,例2,用数组V来存放26个英文字母组成的线性表(a,b,c,z),写出在顺序结构上生成和显示该表的C语言程序。,15,void main(void) /*主函数,字母线性表的生成和输出*/ n=26; /* n是表长,是数据元素的个数,而不是V的 实际下标*/ build( ); display( ); ,void display( ) /*字母线性表的显示,即读表操作*/ int i; for( i=0; i=n-1; i+ ) printf( “%c“, vi ); printf( “n “ ); ,执行结果: a b c d e f g h i j k l m n o p q r s t u v w x y z,16,二、 顺序表的实现(或操作),数据结构的基本运算: 修改、插入、删除、查找、排序,1) 修改 通过数组的下标便可访问某个特定元素并修改之。,核心语句: Vi=x;,显然,顺序表修改操作的时间效率是 O(1),17,在线性表(n个元素)的第i个位置前插入一个元素,实现步骤: 将第n至第i 位的元素向后移动一个位置; 将要插入的元素写到第i个位置; 表长加1。 注意:事先应判断: 插入位置i 是否合法?表是否已满?,for (j=n-1; j=i; j-) aj+1=a j ; a i =x; n+;,/ 元素后移一个位置,/ 插入x,/ 表长加1,核心语句:,2)插入,18,在线性表的第i个位置前插入一个元素的示意图如下:,插入25,19,实现步骤: 将第i+1 至第n 位的元素向前移动一个位置; 表长减1。 注意:事先需要判断,删除位置i 是否合法?,删除线性表的第i个位置上的元素,for ( j=i+1; j=n-1; j+ ) aj-1=aj; n-;,/ 元素前移一个位置,/ 表长减1,核心语句:,3)删除,20,删除顺序表中某个指定的元素的示意图如下:,21,例:建立一个线性表,先依次输入数据元素1,2,3,4,10,然后删除,最后依次显示当前线性表中的数据元素。假设该线性的数据元素个数最坏情况下不会超过100个。 实现方法: 1、采用直接编写一个主函数实现。 2、利用已设计实现的抽象数据类型模块。(存放在头文件名为SeqList.h中,通过 #include “SeqList.h” ),22,三、 顺序表操作的效率分析,算法时间主要耗费在移动元素的操作上,因此 计算时间复杂度的基本操作(最深层语句频度) T(n)= O (移动元素次数) 而移动元素的个数取决于插入或删除元素的位置.,思考:若插入在尾结点之后,则根本无需移动(特别快); 若插入在首结点之前,则表中元素全部要后移(特别慢); 应当考虑在各种位置插入(共n+1种可能)的平均移动次数才合理。,时间效率分析:,23,推导:假定在每个元素位置上插入x的可能性都一样(即概率P相同),则应当这样来计算平均执行时间: 将所有位置的执行时间相加,然后取平均。 若在首结点前插入,需要移动的元素最多,后移n次; 若在a1后面插入,要后移n-1个元素,后移次数为n-1; 若在an-1后面插入,要后移1个元素; 若在尾结点an之后插入,则后移0个元素; 所有可能的元素移动次数合计: 0+1+n = n(n+1)/2,故插入时的平均移动次数为:n(n+1)/2÷(n+1)n/2O(n),共有多少种插入形式?连头带尾有n+1种!,24,同理可证:顺序表删除一元素的时间效率为: T(n)=(n-1)/2 O(n),插入效率:,删除效率:,教材P33有对执行效率的推导:(与课本略有区别),即插入、删除算法的平均时间复杂度为 O(n),25,链式存储结构,本节小结,线性表顺序存储结构特点:逻辑关系上相邻的两个元素在物理存储位置上也相邻; 优点:可以随机存取表中任一元素,方便快捷; 缺点:在插入或删除某一元素时,需要移动大量元素。 解决问题的思路:改用另一种线性存储方式:,26,作业:,P55 2-1, 2-2, 2-11,2-15,

    注意事项

    本文(2019毕业答辩ppt模板-安徽大学.ppt)为本站会员(上海哈登)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开