欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构基础讲义.pptx

    • 资源ID:76870961       资源大小:1.76MB        全文页数:45页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    数据结构基础讲义.pptx

    1 概要2 线性表3 栈和队列4 树和二叉树 5 查找和排序主要内容第1页/共45页1.1 讨论的范畴算法+数据结构=程序设计 处理问题的策略给出问题的数学模型编制出的指令集处理问题用计算机问题问题构建数学模型构建数学模型程序实现程序实现第2页/共45页1.1 讨论的范畴例1 求小红C语言和数据结构两门语言的考试的平均成绩成绩和总成绩。全省的呢?例2 酒店管理中的客房分配问题。例3 煤气管道的铺设问题。等等 例子中的数学模型正是数据结构要讨论的问题。第3页/共45页1.2 定义 数据结构是一门讨论描述现实世界实体的数学模型及其上的操作在计算机中如何表示和实现的学科。a.在解决问题时可能遇到的典型的逻辑结构(数据结构)b.逻辑结构的存储映象(存储实现)c.数据结构的相关操作及其实现。(算法)通俗点讲,数据结构研究的是数据的存储和操作。第4页/共45页1.3 三个方面 数据的逻辑结构数据的逻辑结构 数据的存储结构数据的存储结构 数据的运算:查找、排序、插入、删除、修改等数据的运算:查找、排序、插入、删除、修改等 线性结构线性结构 非线性结构非线性结构 顺序存储顺序存储 链式存储链式存储 线性表线性表栈栈队列队列树形结构树形结构图形结构图形结构第5页/共45页1.3 逻辑和物理结构逻辑结构物理结构第6页/共45页数学模型集合和关系数据和信息数据元素数据项关键码抽象数据类型1.4 相关概念第7页/共45页算法是特定问题求解步骤的描述,在计算机中表现为指令的有限序列,算法是独立存在的一种解决问题的方法和思想。对于算法而言,语言并不重要,重要的是思想。数据结构和算法的关系:数据结构是专门研究数据的存储问题,而对存储后的数据进行相应的操作就是算法。1.5 算法的定义第8页/共45页1.5 算法效率的度量我们通过大O表示法来表示算法的效率:时间复杂度、空间复杂度。规则如下:(1)只关注最高次项,常数项和次要项忽略;(2)时间复杂度是指最坏时间复杂度;(3)只有常数项记做1。执行次数函数执行次数函数阶阶非正式术语非正式术语12O(1)常数阶2n+3O(n)线性阶3n2+2n+1O(n2)平方阶5log2n+20O(logn)对数阶2n+3nlog2n+19O(nlogn)nlogn阶6n3+2n2+3n+4O(n3)立方阶2nO(2n)指数阶第9页/共45页1.6 时间复杂度举例线性阶:O(n)平方阶:O(n2)第10页/共45页1.6 空间复杂度举例空间复杂度:O(n)第11页/共45页2.1 线性表概念线性结构的基本特点是节点之间满足线性关系。数组、链表、栈、队列都属于线性结构。他们的共同之处,是节点中有且只有一个开始节点和终端节点。他们分别属于几种不同的抽象数据类型实现,它们之间的区别,主要就是操作的不同。线性表是零个或者多个数据元素的有限序列,数据元素之间是有顺序的,数据元素个数是有限的,数据元素的类型必须相同第12页/共45页2.1 编程实战动态数组数组到底应该有多大才合适,通常不得而知。所以希望能够在运行时具有改变数组大小的能力。(基本操作:创建、销毁、插入、删除、遍历打印)单向链表 第13页/共45页2.3 编程实战经典双向链表主要操作:初始化头结点、添加、删除、获取元素、遍历第14页/共45页Q1.创建两循环单向链表并将它们合为一各链表?Q2.头指针和头节点有什么区别?头结点和其他节点有什么区别?第1天 习题第15页/共45页3.1 栈的特点栈为一种可以实现“先进后出”的存储结构,凡是对数据的处理具有“后进先出(LIFO)”的特点,都可以用栈这种数据结构来操作。栈的特殊之处在于限制了这个线性表的插入和删除的位置,它始终只在栈顶进行。第16页/共45页3.2 编程实战栈的顺序存储利用一组地址连续的的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top只是栈顶元素在顺序表中的位置。栈的链式存储第17页/共45页3.4 队列的特点队列为一种可以实现“先进先出”(FIFO)的存储结构。队列是一种特殊的受限制的线性表,只允许在一端进行插入操作,而在另一端进行删除操作的线性表,队列不允许在中间部位进行操作。第18页/共45页3.5 编程实战队列的顺序存储第19页/共45页3.6 编程实战队列的链式存储第20页/共45页Q1.假设以带头结点的循环链表表示队列,并又只设一个指针指向队尾元音结点(注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。Q2.假设称正读和反读都相同的字符序列为“回文”,例如,”aba”和”abcba”是回文,”abcde”和”ababab”则不是回文。试写一个算法判别读入的一个以“”为结束符的字符序列是否是“回文”。第2天 习题第21页/共45页4.1 树的定义定义:-由一个或多个结点组成的有限集合T,有且仅有一个结点称为根,其余的结点分为m个互不相交的有限集合T1,T2,Tm。每个集合本身又是棵树,被称作这个根的子树。树的特点:非线性结构,有一个直接前驱,但可能有多个直接后继(1:n)树的定义具有递归性,树中还有树树可以为空,即节点个数为0第22页/共45页4.2 树的术语专业术语专业术语含义含义根也叫根结点(没有前驱)叶子也叫终端结点(没有后继)森林指m棵不相交的树的集合(例如删除A后的子树个数)有序树结点各子树从左至右有序,不能互换(左为第一)无序树结点各子树可互换位置双亲 即上层的那个结点(直接前驱)parent孩子即下层结点的子树(直接后继)child兄弟同一双亲下的同层结点(孩子之间互称兄弟)sibling堂兄弟即双亲位于同一层的结点(但并非同一双亲)cousin祖先即从根到该结点所经分支的所有结点子孙即该结点下层子树中的任一结点结点也叫节点,即树的数据元素结点的度、树的度结点挂接的子树数、所有结点度中的最大值结点的层次从根到该结点的层数(根结点算第一层)终端结点即度为0的结点,即叶子 分支结点除树根以外的结点(也称为内部结点)树的深度(或高度)指所有结点中最大的层数(从根节点到最低层的结点层数)第23页/共45页4.3 树的表示法第24页/共45页4.4 树的表示法第25页/共45页4.5 二叉树的概念二叉树由一个根结点加上两棵分别称为左子树和右子树的互不相交的树组成:每个结点最多只有两棵子树(不存在度大于2的结点)左子树和右子树次序不能颠倒(有序树)第26页/共45页4.6 树转化为二叉树左孩子右兄弟表示法可以将一颗多叉树转化为一颗二叉树。第27页/共45页4.7 满二叉树和完全二叉树第28页/共45页4.7 树的顺序存储多叉树顺序存储的缺陷第29页/共45页4.7 完全二叉树的顺序存储非完全二叉树存储缺点:浪费空间;插入、删除不便完全二叉树存储第30页/共45页4.7 二叉树的链式存储二叉链存储第31页/共45页4.7 二叉树的链式存储三叉链存储第32页/共45页4.8 二叉树的遍历遍历是指按某条搜索路线遍访每个结点且不重复(又称周游),遍历是树结构插入、删除、修改、查找和排序运算的前提,是二叉树一切运算的基础和核心。牢记一种约定,对每个结点的查看都是“先左后右”。遍历方式遍历方式特点特点先序遍历(先根遍历,DLR)根-左子树-右子树中序遍历(中根遍历,LDR)左子树-根-右子树后序遍历(后根遍历,LRD)左子树-右子树-根第33页/共45页4.8 二叉树的遍历第34页/共45页4.8 编程实战二叉树的动态创建和释放二叉树的递归遍历计算二叉树叶子节点数目计算二叉树高度第35页/共45页第3天 习题Q1 编写递归算法,在二叉树中求位于先序序列中第A个位置的结点的值。Q2 编写递归算法,计算二又树中叶子结点的数目。Q3 编写递归算法,将二叉树中所有结点的左、右子树相互交换。第36页/共45页5.1 查找的概念根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素,若表中存在这样的一个记录,则称查找是成功的。第37页/共45页5.2 编程实战顺序查找二分查找第38页/共45页5.3 排序的概念排序是计算机内经常进行的一种操作,其目的是将一组“无序”的数据元素调整为“有序”的数据元素。排序是高效查询的前提。第39页/共45页5.4 编程实战冒泡选择插入排序第40页/共45页5.5 排序算法比较第41页/共45页第4天 习题Q1 编写一个双向起泡的排序算法,即相邻两遍分别向相反方向起泡。Q2 当记录序列基本有序时,用哪种排序才法效率较高?简单选择排序与起泡排序两者在什么情况下的执行效率差别较大?Q3 画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。第42页/共45页谢谢大家!第43页/共45页6 学习拓展图和广义表文件实战吧,实践出真知!肖兴贵第44页/共45页感谢您的观看!第45页/共45页

    注意事项

    本文(数据结构基础讲义.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开