版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、it education & trainingdate:27 october 2021数据结构-肖兴贵传智播客1专业课堂it education & trainingdate:27 october 2021 1 概要 2 线性表 3 栈和队列 4 树和二叉树 5 查找和排序主要内容2专业课堂it education & trainingdate:27 october 20211.1 讨论的范畴算法+数据结构 = 程序设计 处理问题的策略给出问题的数学模型编制出的指令集处理问题用计算机问题问题构建数学模型构建数学模型程序实现程序实现3专业课堂it education &a
2、mp; trainingdate:27 october 20211.1 讨论的范畴 例1 求小红c语言和数据结构两门语言的考试的平均成绩成绩和总成绩。全省的呢? 例2 酒店管理中的客房分配问题。 例3 煤气管道的铺设问题。 等等 例子中的数学模型正是数据结构要讨论的问题。4专业课堂it education & trainingdate:27 october 20211.2 定义 数据结构是一门讨论描述现实世界实体的数学模型及其上的操作在计算机中如何表示和实现的学科。 a. 在解决问题时可能遇到的典型的逻辑结构(数据结构) b. 逻辑结构的存储映象(存储实现)c. 数据结构的相关操作及其
3、实现。(算法)通俗点讲,数据结构研究的是数据的存储和操作。5专业课堂it education & trainingdate:27 october 20211.3 三个方面 数据的逻辑结构数据的逻辑结构 数据的存储结构数据的存储结构 数据的运算:查找、排序、插入、删除、修改等数据的运算:查找、排序、插入、删除、修改等 线性结构线性结构 非线性结构非线性结构 顺序存储顺序存储 链式存储链式存储 线性表线性表栈栈队列队列树形结构树形结构图形结构图形结构6专业课堂it education & trainingdate:27 october 20211.3 逻辑和物理结构逻辑结构物理结构
4、7专业课堂it education & trainingdate:27 october 2021 数学模型 集合和关系 数据和信息 数据元素 数据项 关键码 抽象数据类型1.4 相关概念8专业课堂it education & trainingdate:27 october 2021 算法是特定问题求解步骤的描述,在计算机中表现为指令的有限序列,算法是独立存在的一种解决问题的方法和思想。对于算法而言,语言并不重要,重要的是思想。 数据结构和算法的关系:数据结构是专门研究数据的存储问题,而对存储后的数据进行相应的操作就是算法。1.5 算法的定义9专业课堂it education &
5、amp; trainingdate:27 october 20211.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)指数阶10专业课堂it education & training
6、date:27 october 20211.6 时间复杂度举例 线性阶:o(n) 平方阶: o(n2)11专业课堂it education & trainingdate:27 october 20211.6 空间复杂度举例 空间复杂度:o(n)12专业课堂it education & trainingdate:27 october 20212.1 线性表概念 线性结构的基本特点是节点之间满足线性关系。数组、链表、栈、队列都属于线性结构。他们的共同之处,是节点中有且只有一个开始节点和终端节点。他们分别属于几种不同的抽象数据类型实现,它们之间的区别,主要就是操作的不同。 线性表是零
7、个或者多个数据元素的有限序列,数据元素之间是有顺序的,数据元素个数是有限的,数据元素的类型必须相同13专业课堂it education & trainingdate:27 october 20212.1 编程实战 动态数组数组到底应该有多大才合适,通常不得而知。所以希望能够在运行时具有改变数组大小的能力。(基本操作:创建、销毁、插入、删除、遍历打印) 单向链表 头指针头指针a0a1an 1( a )( b )14专业课堂it education & trainingdate:27 october 20212.3 编程实战头指针头指针a0a1an 1( a )( b ) 经典双向
8、链表主要操作:初始化头结点、添加、删除、获取元素、遍历15专业课堂it education & trainingdate:27 october 2021q1. 创建两循环单向链表并将它们合为一各链表?q2. 头指针和头节点有什么区别?头结点和其他节点有什么区别?第1天 习题16专业课堂it education & trainingdate:27 october 20213.1 栈的特点 栈为一种可以实现“先进后出”的存储结构,凡是对数据的处理具有“后进先出(lifo)”的特点,都可以用栈这种数据结构来操作。 栈的特殊之处在于限制了这个线性表的插入和删除的位置,它始终只在栈顶进行
9、。17专业课堂it education & trainingdate:27 october 20213.2 编程实战 栈的顺序存储利用一组地址连续的的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top只是栈顶元素在顺序表中的位置。 栈的链式存储18专业课堂it education & trainingdate:27 october 20213.4 队列的特点 队列为一种可以实现“先进先出”(fifo)的存储结构。 队列是一种特殊的受限制的线性表,只允许在一端进行插入操作,而在另一端进行删除操作的线性表,队列不允许在中间部位进行操作。19专业课堂it education
10、& trainingdate:27 october 20213.5 编程实战 队列的顺序存储20专业课堂it education & trainingdate:27 october 20213.6 编程实战 队列的链式存储21专业课堂it education & trainingdate:27 october 2021q1. 假设以带头结点的循环链表表示队列,并又只设一个指针指向队尾元音结点(注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。q2. 假设称正读和反读都相同的字符序列为“回文”,例如,”aba”和”abcba”是回文,”abcde”和”aba
11、bab”则不是回文。试写一个算法判别读入的一个以“”为结束符的字符序列是否是“回文”。第2天 习题22专业课堂it education & trainingdate:27 october 20214.1 树的定义定义:- 由一个或多个结点组成的有限集合t,有且仅有一个结点称为根,其余的结点分为m个互不相交的有限集合t1, t2,tm。每个集合本身又是棵树,被称作这个根的子树。树的特点:非线性结构,有一个直接前驱,但可能有多个直接后继(1:n)树的定义具有递归性,树中还有树树可以为空,即节点个数为023专业课堂it education & trainingdate:27 octo
12、ber 20214.2 树的术语专业术语专业术语含义含义根也叫根结点(没有前驱)叶子也叫终端结点(没有后继)森林指m棵不相交的树的集合(例如删除a后的子树个数)有序树结点各子树从左至右有序,不能互换(左为第一)无序树结点各子树可互换位置双亲 即上层的那个结点(直接前驱) parent孩子即下层结点的子树 (直接后继) child兄弟同一双亲下的同层结点(孩子之间互称兄弟)sibling堂兄弟即双亲位于同一层的结点(但并非同一双亲)cousin祖先即从根到该结点所经分支的所有结点子孙即该结点下层子树中的任一结点结点也叫节点,即树的数据元素结点的度、树的度结点挂接的子树数、所有结点度中的最大值结点
13、的层次从根到该结点的层数(根结点算第一层)终端结点即度为0的结点,即叶子 分支结点除树根以外的结点(也称为内部结点)树的深度(或高度)指所有结点中最大的层数(从根节点到最低层的结点层数)24专业课堂it education & trainingdate:27 october 20214.3 树的表示法25专业课堂it education & trainingdate:27 october 20214.4 树的表示法26专业课堂it education & trainingdate:27 october 20214.5 二叉树的概念二叉树由一个根结点加上两棵分别称为左子树
14、和右子树的互不相交的树组成:每个结点最多只有两棵子树(不存在度大于2的结点)左子树和右子树次序不能颠倒(有序树)27专业课堂it education & trainingdate:27 october 20214.6 树转化为二叉树左孩子右兄弟表示法可以将一颗多叉树转化为一颗二叉树。28专业课堂it education & trainingdate:27 october 20214.7 满二叉树和完全二叉树29专业课堂it education & trainingdate:27 october 20214.7 树的顺序存储多叉树顺序存储的缺陷30专业课堂it educa
15、tion & trainingdate:27 october 20214.7 完全二叉树的顺序存储非完全二叉树存储缺点:浪费空间;插入、删除不便完全二叉树存储31专业课堂it education & trainingdate:27 october 20214.7 二叉树的链式存储二叉链存储32专业课堂it education & trainingdate:27 october 20214.7 二叉树的链式存储三叉链存储33专业课堂it education & trainingdate:27 october 20214.8 二叉树的遍历 遍历是指按某条搜索路线遍访
16、每个结点且不重复(又称周游),遍历是树结构插入、删除、修改、查找和排序运算的前提,是二叉树一切运算的基础和核心。 牢记一种约定,对每个结点的查看都是“先左后右”。 遍历方式遍历方式特点特点先序遍历(先根遍历,dlr)根 - 左子树 - 右子树中序遍历(中根遍历,ldr)左子树 - 根 - 右子树后序遍历(后根遍历,lrd)左子树 - 右子树 - 根34专业课堂it education & trainingdate:27 october 20214.8 二叉树的遍历35专业课堂it education & trainingdate:27 october 20214.8 编程实战
17、二叉树的动态创建和释放 二叉树的递归遍历 计算二叉树叶子节点数目 计算二叉树高度36专业课堂it education & trainingdate:27 october 2021第3天 习题q1 编写递归算法,在二叉树中求位于先序序列中第a个位置的结点的值。q2 编写递归算法,计算二又树中叶子结点的数目。q3 编写递归算法,将二叉树中所有结点的左、右子树相互交换。37专业课堂it education & trainingdate:27 october 20215.1 查找的概念根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素,若表中存在这样的一个记录,则称
18、查找是成功的。38专业课堂it education & trainingdate:27 october 20215.2 编程实战 顺序查找 二分查找39专业课堂it education & trainingdate:27 october 20215.3 排序的概念排序是计算机内经常进行的一种操作,其目的是将一组“无序”的数据元素调整为“有序”的数据元素。排序是高效查询的前提。40专业课堂it education & trainingdate:27 october 20215.4 编程实战 冒泡 选择 插入排序41专业课堂it education & trainingdate:27 october 20215.5 排序算法比较42专业课堂it education & trainingdate:2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客服主管客户满意度与服务质量面试题及答案
- 瓣叶对合指数的术中监测与调整策略
- 冶金企业产品质量检测部经理考试题目分析
- 狂犬病疫苗智能仓储的冷链保障方案
- 汽车起重机司机模拟考试题库含答案
- 工业设计师招聘面试问题集与答案参考
- 电影制片人面试题及答案解析
- 创意家居饰品项目可行性分析报告范文(总投资15000万元)
- 美容行业客服经理面试题与答案
- 采购部评标专家面试题及答案
- 危险化学品泄漏处理
- 医学一等奖《白血病》课件
- JCT587-2012 玻璃纤维缠绕增强热固性树脂耐腐蚀立式贮罐
- 金属制品厂电泳生产线安全风险分级清单
- 医疗器械临床评价报告模板
- 生物计算机课件
- 浙江省优秀安装质量奖创优计划申报表实例
- 新时代背景下企业人力资源管理的数字化转型探研共3篇
- 奥的斯电梯toec-40调试方法
- 化工原理(下)第4章液液萃取
- 重点监管的危险化学品名录(完整版)
评论
0/150
提交评论