- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用C语言591何谓高度平衡二元搜寻树资料结构
Chapter 9 高度平衡二元搜尋樹 9.1 何謂高度平衡二元搜尋樹 9.2 AVL-tree的加入 9.3 AVL-tree的刪除 9.1 何謂高度平衡二元搜尋樹 高度平衡二元搜尋樹(height balanced binary search tree)在1962年由Adelson-Velskii 和Landis所提出的,因此又稱為AVL-tree。 9.1 何謂高度平衡二元搜尋樹 AVL-tree定義如下:一棵空樹(empty tree)是高度平二元搜尋樹。假使T不是空的二元搜尋樹,TL和TR分別是此二元搜尋樹的左子樹和右子樹,若符合下列兩個條件,則稱T為高度平衡二元搜尋樹: TL和TR亦是高度平衡二元搜尋樹, |hL-hR| 1,其中hL及hR分別是TL和TR的高度。 9.1 何謂高度平衡二元搜尋樹 在一棵二元搜尋樹中有一節點p,其左子樹 (TL) 和右子樹 (TR) 的高度分別是hL和hR,而BF(p)表示p節點的平衡因子(balanced factor)。 平衡因子之計算為hL-hR。在一棵AVL-tree裡,每一節點的平衡因子為-1或零或1,即 |BF(p) | 1。 圖9-1不是一棵AVL-tree,因為M節點的平衡因子是-2。 9.1 何謂高度平衡二元搜尋樹 9.2 AVL-tree的加入 高度平衡二元搜尋樹可能會因為加入或刪除某節點而形成不平衡狀態,此時須視不平衡狀態是那一類型,之後,再加以調整之。 通常不平衡的狀態可分為LL、RR、LR與RL四大類型。 9.2 AVL-tree的加入 利用加入的節點A與它最接近平衡因子絕對值大於1(|BF|1)的節點B, 若A在B的左邊的左邊,則為LL型; 若A在B節點的右邊的右邊,則為RR型; 若A在B節點的左邊的右邊,則為LR型; 若A在B節點的右邊的左邊,則稱為RL型。 9.2 AVL-tree的加入 LL型 加入前的AVL-tree: 加入30後的AVL-tree如下:每個節點的上面數字表示平衡因子。 9.2 AVL-tree的加入 此時50節點的|BF|1,因此不為一棵AVL-tree,其調整的方法乃將40往上提,50放在40的右方,如下圖所示: 9.2 AVL-tree的加入 RR型 此RR型與LL型大同小異,如加入前的AVL-tree為: 加入70後的AVL-tree為: 9.2 AVL-tree的加入 此時有一節點50,其|BF|1,因此不為AVL-tree,其型態為RR型,調整的方法乃將60往上提,50放在60的左方,如下圖所示: 9.2 AVL-tree的加入 LR型 假設有一棵AVL-tree如下: 今加入45,則將變為不是一棵AVL-tree,它是屬於LR型,因為加入的節點45位於節點50(|BF|1)的左邊的右邊。 9.2 AVL-tree的加入 調整的方式將45往上提,比45小的放在左邊,比45大的放在右邊,結果如下所示: 9.2 AVL-tree的加入 RL型 基本上RL型和LR型大致上類似。有一棵AVL-tree如下: 今加入節點55後,將變成不是一棵AVL-tree,它是RL型,因為加入的節點55,位於節點50(|BF|1)的右邊的左邊。 9.2 AVL-tree的加入 調整的方式將55往上提,並將小於55的節點放在左邊,大於55的節點放在右邊,如下圖所示: 9.3 AVL-tree的刪除 AVL-tree的刪除與二元搜尋樹的刪除相同,當刪除的動作完成後,再計算平衡因子,作適當的調整,直到平衡因子的絕對值皆小於等於1。 9.3 AVL-tree的刪除 假設存在一棵AVL-tree如下: 9.3 AVL-tree的刪除 若欲刪除50,因為它為一樹葉節點,故直接刪除之。 9.3 AVL-tree的刪除 從樹根尋找pivot點(遇到第一個BF值的絕對值大於1的節點)為30,當pivot節點的BF值大於等於0時往左子樹、小於0往右子樹找下一個節點,由於節點30的BF值為2大於等於0,故往pivot節點的左子樹找到節點20,其BF值大於等於0,找到此可知調整型態為LL型,不需再往下搜尋。 9.3 AVL-tree的刪除 調整結果如下: 9.3 AVL-tree的刪除 了解AVL-tree的刪除及其調整方法後,我們再來看一個例子。有一棵AVL-tree如下: 9.3 AVL-tree的刪除 若欲刪除80,可找到替代節點90(右子樹中最小的節點),如下圖所示: 9.3 AVL-tree的刪除 從樹根尋找pivot節點,它是90那個節點,其BF值為2大於0,往其左子樹尋找下一節點的BF值為-1小於0,由此
您可能关注的文档
最近下载
- (新课标)人教版小学劳动教育五年级上册第一章劳动项目2《煮面条》教学设计.doc
- 副县长在县委理论学习中心组学习会上的发言(党的作风建设的重要论述).doc VIP
- 注射水纯水纯蒸汽施工方案.pdf VIP
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案.docx VIP
- 电力新能源知识培训课件.pptx VIP
- 电气运行、检修、事故处理、安全操作规程(电气五大规程).docx
- 《矿山隐蔽致灾因素普查规范 大纲》.doc VIP
- 新概念英语第一册 Lesson 21-22课件.ppt VIP
- 2025贵州遵义南国大数据有限公司招聘100人笔试模拟试题及答案解析.docx VIP
- 网信体系下 网络舆情应对流程指南.docx VIP
文档评论(0)