数据结构与算法第四章08.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法第四章08.ppt

二叉有哪些信誉好的足球投注网站树 二叉有哪些信誉好的足球投注网站树的效率就在于只需检索二个子树之一 从根结点开始,在二叉有哪些信誉好的足球投注网站树中检索值K。如果根结点储存的值为K,则检索结束。 如果K小于根结点的值,则只需检索左子树 如果K大于根结点的值,就只检索右子树 这个过程一直持续到K被找到或者我们遇上了一个 树叶 如果遇上树叶仍没有发现K,那么K就不在该二叉 有哪些信誉好的足球投注网站树中 二叉有哪些信誉好的足球投注网站树的插入 往二叉有哪些信誉好的足球投注网站树里插入新结点,要保证插入后仍符合二叉有哪些信誉好的足球投注网站树的定义 插入是这样进行的:将待插入结点的关键码值与树根的关键码值比较,若待插入的关键码值小于树根的关键码值,则进入左子树,否则进入右子树 在子树里又与子树根比较,如此进行下去,直到把新结点插入到二叉树里作为一个新的树叶 二叉有哪些信誉好的足球投注网站树 对于给定的关键码集合,为建立二叉有哪些信誉好的足球投注网站树,可以从一个空的二叉有哪些信誉好的足球投注网站树开始,将关键码一个个插进去 将关键码集合组织成二叉有哪些信誉好的足球投注网站树,实际上起了对集合里的关键码进行排序的作用,按中序周游二叉有哪些信誉好的足球投注网站树,就能得到排好的关键码序列。 二叉有哪些信誉好的足球投注网站树的删除 从二叉有哪些信誉好的足球投注网站树里删除一个结点时,不能把以这个结点 为根的子树都删除掉,只能删除掉这一个结点,并且还要保持二叉有哪些信誉好的足球投注网站树原来的性质。 设p,p1,r是指针变量,p↑表示s要删除的结点, p1↑表示p↑的父母结点,则删除可以按如下规定进行: 若结点p↑没有左子树,则用右子树的根代替被删除的结点p↑ 若结点p↑有左子树,则在左子树里找按中序周游的最后一个结点r↑,用r↑的右子树的根取代r↑,然后用结点r↑去代替被删除的结点p↑ 从二叉排序树中删除wan和zol后得到的二叉排序树 二叉有哪些信誉好的足球投注网站树总结 树形结构的一个重要应用是用来组织索引, 二叉有哪些信誉好的足球投注网站树是适用于内存储器的一种重要的 树形索引 二叉有哪些信誉好的足球投注网站树的插入和删除运算非常简单。往 二叉有哪些信誉好的足球投注网站树里插入新结点或删除已有结点, 要保证操作结束后仍符合二叉有哪些信誉好的足球投注网站树的定义 4.7 堆与优先队列 最小值堆:最小值堆是一个关键码序列 {K0,K1,…Kn-1},它具有如下特性: Ki≤K2i+1 (i=0,1,…, n/2-1) Ki≤K2i十2 类似可以定义最大值堆 堆的示例 堆的性质 堆实际上是一个完全二叉树的层次序列,可以用数组表示 堆中储存的数是局部有序的 结点储存的值与其子女储存的值之间存在某种联系。有两种不同的堆,决定于其关于联系的定义 堆中任何一个结点与其兄弟之间都没有必然的联系 堆不唯一。从逻辑角度看,堆实际上是一种树型结构 建堆过程——筛选法 不必将值一个个地插入堆中,通过交换形成堆 假设根的左、右子树都已是堆,并且根的元素名为R。这种情况下,有两种可能: (1) R的值小于或等于其两个子女,此时堆已完成; (2) R的值大于其某一个或全部两个子女的值,此时R应与两个子女中值较小的一个交换,结果得到一个堆,除非R仍然大于其新子女的一个或全部的两个。这种情况下,我们只需简单地继续这种将R“拉下来”的过程,直至到达某一个层使它小于它的子女,或者它成了叶结点 建堆效率 这种算法时间代价为Ο(n) 由于堆有log n层深,插入结点、删除普 通元素和删除最小元素的平均时间代价和最差时间代价都是Ο(log n) 堆排序的时间代价为O(nlog n ) 优先队列 堆是优先队列的一种自然的实现方法。优先队列存储对象,并根据需要释放具有最小(大)值的对象 有些优先队列的应用要求能够改变已存储于队列中的对象的优先权,典型实现方法需要一个辅助数据结构 4.8 Huffman编码树 要求给出一个具有n个外部结点的扩充二叉树, 该二叉树每个外部结点Ki有一个wi与之对应,作为该外部结点的权 这个扩充二叉树的叶结点带权外部路径长度总和 最小 (注意不管内部结点,也不用有序) 权越大的叶结点离根越近;如果某个叶的权较小, 可能就会离根较远 建立Huffman编码树 首先,按照“权”(例如频率)将字母排为一列。 接着,拿走前两个字母(“权”最小的两个字母),再将它们标记为Huffman树的树叶,将这两个树叶标为一个分支结点的两个子女,而该结点的权即为两树叶的权之和。将所得“权”放回序列中适当位置,使“权”的顺序保持。 重复上述步骤直至序列中只剩一个元素, 则 Huffman树建立完毕。 Huffman编码树的应用 设D={d0,…,dn-1}, W={W0,…,Wn-1} D为需要编码的字符集合,W为D中各字符出现的频率,要对D里的字符进行二进制编码,使得: 通信编码总长最短 若di≠ dj ,则di的编码不可能是dj的编码的开始部分(前缀) Hu

文档评论(0)

tangtianxu1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档