网站大量收购独家精品文档,联系QQ:2885784924

数据结构与算法--第17讲二叉树的应用课件.ppt

数据结构与算法--第17讲二叉树的应用课件.ppt

  1. 1、本文档共148页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 0,7 false 0,3 false 4,7 false 0,1 false 0, 0 false 4,5 false 6,7 true 3,3 false 4,4 false 5,5 false 1,1 false 2,3 true 2,2 false 6,6 false 7,7 false 1 4 0,3 2 6 1,4 8 10 6,7 3 4 2,3 7 10 5,7 不统计,仍是2块 6,7 6,7 if( pRoot-bCovered ) return false; false false false * * 0,7 false 0,3 false 4,7 false 0,1 false 0, 0 false 4,5 false 6,7 true 3,3 false 4,4 true 5,5 false 1,1 true 2,3 true 2,2 false 6,6 false 7,7 false 1 4 0,3 2 6 1,4 8 10 6,7 3 4 2,3 7 10 5,7 4,4 1,3 1,1 2,3 1,1 4,4 4,4 true false true true true true true =3块 露出了2小块,证明还没被完全盖住 true * * 0,7 false 0,3 true 4,7 false 0,1 false 0, 0 false 4,5 false 6,7 true 3,3 false 4,4 true 5,5 false 1,1 true 2,3 true 2,2 false 6,6 false 7,7 false 1 4 0,3 2 6 1,4 8 10 6,7 3 4 2,3 7 10 5,7 =4块 true true * bool Post( CNode *pRoot, int L, int R) { if( pRoot-bCovered ) return false; if( pRoot-L == L pRoot-R == R) { pRoot-bCovered = true; return true; } * bool bResult ; if( R = Mid(pRoot) ) bResult = Post( pRoot-pLeft,L,R); else if( L = Mid(pRoot) + 1) bResult = Post( pRoot-pRight,L,R); else { bool b1 = Post(pRoot-pLeft ,L,Mid(pRoot)); bool b2 = Post( pRoot-pRight,Mid(pRoot) + 1,R); bResult = b1 || b2; } //要更新根节点的覆盖情况 if( pRoot-pLeft-bCovered pRoot-pRight-bCovered ) pRoot-bCovered = true; return bResult; } * POJ 1151 Atlantis 给定一些矩形,其顶点坐标是浮点数,可能互相重叠,问这些矩形覆盖到的面积是多大。 用线段树做,先要离散化!! * * Sample Input 2 10 10 20 20 15 15 25 25.5 0 Sample Output Test case #1 Total explored area: 180.00 Sample Input 3 10 10 20 20 15 15 25 25.5 17 8 23 12 0 Sample Output Test case #1 Total explored area: 198.00 * 分析 在Y轴进行离散化。n个矩形的2n个横边纵坐标共构成最多2n-1个区间的边界,对这些区间编号,建立起线段树。 * * 分析 线段树的节点要保存哪些信息? 如何将一个个矩形插入线段树? 插入过程中这些信息如何更新? 怎样查询? * * 结点结构 struct CNode{ int L,R; CNode* pLeft, * pRight; double Len; //落在本区间的线段总长度intCovers;//本区间被完全覆盖的重数 }; 上面的“线段”指的是真实的线段,即由

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档