- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机技术应用基础 第5章 数据结构基础 5.1 引言 5.2 线性结构 5.3 树形结构 5.4 内部排序 5.5 检索(查找) 5.1 引言 5.1.1 什么是数据结构 数据之间的相互关系 5.1.2 数据的逻辑结构 5.1.3 数据的存储结构 5.1.4 数据的运算 检索、插入、更新、排序… 5.1.2数据的逻辑结构 集合:无其他关系 线性结构:一对一 树形结构:一对多 图形结构:多对多 5.1.3 数据的存储结构 数据的逻辑结构在计算机存储器中的实现,也称物理结构 顺序映射方式 链接映射方式 索引映射方式 散列映射方式 5.2 线性结构 5.2.1 线性表 5.2.2 栈 5.2.3 队列 5.2.4 链表 5.2.1 线性表 线性列表是一个列表,列表内每个元素都有唯一的后继元素(除去最后一个元素)。线性表具有顺序结构。 向量(一维数组):类型相同、有序 5.2.2 栈 栈是一种线性表,对栈的添加和删除只能在“栈顶”进行。 5.2.3 队列 队列也是一种线性表。数据只能在称为“尾部”的一端插入,只能从称为“头部”的一端删除。 5.2.4 链表 1、链接栈 2、链式队列 5.3 树形结构 5.3.1 树及其遍历 5.3.2 二叉树 5.3.3 遍历二叉树 5.3.1 树及其遍历 树包括一组有限的元素,这些元素称为结点;同时包括一组有向线段,用来连接结点,称为分支。 一个结点的子树个数称为该结点的度数 5.3.2 二叉树 二叉树是结点的有限集合,此集合或为空集,或为由一个根结点和两棵互不相交的称为左右的二叉树构成 深度:树中结点的最大层次 平衡因子:二叉树中任一结点的右子树与左子树的深度之差 平衡二叉树:所有结点的平衡因子的绝对值不大于1的二叉树 5.3.3 遍历二叉树 遍历二叉树是按照预定的顺序处理每一个节点且仅处理一次。 先根顺序遍历、中根顺序遍历、后根顺序遍历 练习 一棵二叉数共有10个节点(分别用A、B……J表示),已知树的中序遍历结果为:DHBEAFCIGJ,前序遍历结果为:ABDHECFGIJ。回答下列问题。 请画出这棵二叉树。 写出该树的后序遍历结果。 5.5 内部排序 5.5.1 简单插入排序 5.5.2 简单选择排序 5.5.3 冒泡排序 5.5.1 简单插入排序 列表被分成两个子列表:已排序和未排序的;初始时已排序部分为空。 在每次扫描过程中,取出未排序列表中的第一个元素,然后转到已排序列表中,将其插入到合适的位置上。每次扫描,未排序列表增加1个,已排序列表减少1个。 对于n个数据,需要进行n-1次扫描。 5.5.2 简单选择排序 列表被分成两个子列表:已排序和未排序的;初始时已排序部分为空。 排序时,从未排序列表中找到最小元素,与第一个元素交换。 经过选择和交换后,将未排序列表中的第一个元素划入排序列表中,这一过程称为一次扫描。每次扫描后,未排序列表减少一个元素,已排序列表增加一个元素。 对于n个数据,需要进行n-1次扫描。 5.5.3 冒泡排序 列表被分成两个子列表:已排序和未排序的;初始时已排序部分为空。 在未排序的子列表中,最小的元素通过冒泡的方法选出来并移动到已排序子列表中,这一过程称为一次扫描。每次扫描,未排序元素增加1个,已排序元素减少1个。 冒泡时,进行两两比较,如果前者较大,则交换数据。 对于n个数据,需要进行n-1次扫描。 冒泡法排序示意 {10,1,2,7,6,8,9,3,4,5} 第1轮 第2轮 第3轮 冒泡法排序示意 {10,1,2,7,6,8,9,3,4,5} 继续排序 5.6 检索(查找) 查找实现在列表中确定目标所在位置。查找通常返回具有要查找目标值的第一个元素的位置(索引) 5.6.1 顺序检索 5.6.2 二分法检索 5.6.3 分块检索* 5.6.4 散列表检索* 5.6.1 顺序检索(查找) 用于查找无序列表,一般用这种方法查找规模较小的列表。 顺序查找从表头开始逐个元素查找,当找到目标元素或查找完整个列表时,查找过程结束。 5.6.2 二分法检索(折半查找) 顺序查找很慢,尤其当列表中数据非常多时,逐个元素比较非常费时。当列表有序时,可采用效率非常高的折半查找算法。 折半查找时,先测试中间元素,可以判断出目标在列表的前半部分还是后半部分。如果在前半部分,则不用比较后半部分数据,排除掉一半数据。 重复折半过程,直到找到目标或确定目标不在列表中。 小结 数据结构:数据的逻辑结构、数据的存储结构和数据的运算 数据结构通常分为四种基本结构 数据的四种基本的存储映射方式 线性结构中有关线性表、栈、队列和链表的概念。 树型结构中介绍了树、二叉树概念,以及线索化和遍历操作。 图型结构中掌握图的基本概念,存储和遍历的方法 选择排序、插入排序、冒泡排序 顺序查找、折半
文档评论(0)