- 1、本文档共147页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
前序遍历(根左右)的递归算法: 若二叉树为空,则结束遍历;否则 (1)访问根结点(2)前序遍历左子树 (3)前序遍历右子树 中序遍历(即左根右) 后序遍历(即左右根) 1、前序遍历演示(根左右) A B C D E F A 根 左 右 B D C E F 2、中序遍历演示(左根右) A B C D E F A 根 左 右 B D C E F 3、后序遍历演示(左右根) A B C D E F A 根 左 右 B D C E F 练习1:写出下列二叉树的三种遍历结果。 A B C D F E G 练习2:写出下列二叉树的三种遍历结果。 A B C D E G F 思考: 根据以上例题和练习的结果,可以看出对同一个二叉树,三种遍历结果中,哪些结点的前后顺序始终是不变的? 6、二叉树的存储结构 在计算机中,二叉树通常采用链式存储结构。 二、非线性结构----图 图(Graph)是一种表树更复杂的非线性结构。图中结点之间具有的网状结构,即结点之间的关系可以是任意的,任意两个数据元素之间都可能相关。 1.有向图与无向图 若图G中的每条边都是有方向的,则称G为有向图;有向边也称为弧;若图G中的每条边都是没有方向的,则称G为无向图。 1 2 3 4 1 2 3 4 5 (a) 有向图 (b) 无向图 2.完全图 对有n个顶点的图,若为无向图且边数为n(n-1)/2,则称其为无向完全图;若为有向图且边数为n(n-1),则称其为有向完全图。 6. 连通图 在无向图G中,若两个顶点之间有路径存在,则称是连通的。若G中任意两个顶点都是连通的,则称G是连通图。若无向图G有n个顶点,且是连通的,则图G至少应该有n-1条边。 1.4 查找与排序 一、查找的定义: 查找是指在一个给定的数据结构中寻找某个指定的元素。 二、常用的查找方法: 1、顺序查找 2、二分法查找 三、顺序查找: 1、基本思路: 从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。否则就是表中没有要找的元素,查找不成功。 2、查找效率分析: 3、顺序查找的优缺点 : 4、只能采用顺序查找的情况 : 四、二分法查找: 1、适用前提: 二分法查找又称折半查找,它只适用于顺序存储的有序表。 2、基本思路: 首先选取表中间位置的记录,将其关键字与给定关键字k进行比较,若相等,则查找成功;否则,若k值比该关键字值大,则要找的元素一定在表的后半部分(或称右子表),则继续对右子表进行折半查找:若k值比该关键字值小,则要找的元素一定在表的前半部分(左子表),同样应继续对左子表进行折半查找。每进行一次比较,要么找到要查找的元素,要么将查找的范围缩小一半。如此递推,直到查找成功或把要查找的范围缩小为空(查找失败)。 3、基本方法: 设表的长度为n,表的被查找部分的头为low,尾为high,初始时,low=1,high=n,k为关键字的值,key为记录的关键字值。 (1)计算中间记录的序号mid=(low+high)/2,取整数: (2)若k=r[mid].key,成功,否则: 若kr[mid].key, 则high=mid-1,重复(1): 若kr[mid].key, 则low=mid+l,重复(1); 直到成功或不成功(此时lowhigh)。 查找23和79的过程如下图: mid=(low+high)/2不进位取整 ( 08, 14, 23, 37, 46, 55, 68, 79, 91 ) ( 08, 14, 23, 37, 46, 55, 68, 79, 91 ) low high mid ( 08, 14, 23, 37, 46, 55, 68, 79, 91 ) low high=mid-1 mid ( 08, 14, 23, 37, 46, 55, 68,
文档评论(0)