`
liuxinyu95
  • 浏览: 31407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AVL tree,比红黑树更朴素

阅读更多
AVL树发明于上世纪60年代,比红黑树早了近十年。

上一章里,我展示了用pattern matching实现的红黑树。本章我展示同样策略实现的AVL tree。相比于传统的基于旋转的解法,这一解法再次展示了简单一致的特点。

本章内容如下:
  - 简单介绍;给出AVL树的高度与节点数的证明;
  - 类比红黑树的思路;
  - 解:
    - pattern matching 的形式分析
    - 子问题一: 如何更新平衡因子和增加的高度?
    - 子问题二; 4个case中的平衡因子如何变化的推导和证明;
    - Haskell实现
  - 验证
  - 删除算法作为习题留给读者
  - 和传统旋转解法的对比,给出了算法描述和Python实现
  - 对比和红黑树的差异。

原文连接和PDF (墙外):
https://sites.google.com/site/algoxy/avltree

PDF:
https://sites.google.com/site/algoxy/avltree/avltree-en.pdf

源代码:
https://github.com/liuxinyu95/AlgoXY
分享到:
评论
1 楼 liuxinyu95 2011-08-15  
PDF放了一份在github:
https://github.com/downloads/liuxinyu95/AlgoXY/avltree-en.pdf

相关推荐

    用BST,红黑树,AVL树,朴素算法实现字典的查找

    在本项目中,我们主要探讨了四种不同的数据结构在实现字典查找中的应用:二叉搜索树(BST)、红黑树(Red-Black Tree)以及AVL树,还有朴素的线性查找算法。这些数据结构在计算机科学中扮演着至关重要的角色,特别是...

    数据结构经典算法实现与习题解答

    - **平衡树**:如AVL树和红黑树,保证了树的高度平衡,从而提高查询效率。 - **堆**:可以是最大堆或最小堆,常用于优先队列的实现。 3. **图数据结构**: - **图的表示**:邻接矩阵和邻接表,前者适用于稠密图...

    数据结构图需注意的知识点.docx

    - 可以通过调整树的结构(如平衡二叉搜索树AVL树、红黑树等)来提高性能。 总结上述知识点,我们不难发现,无论是图的基本表示形式——邻接表,还是基于图的应用,如最小生成树的构建、拓扑排序以及关键路径的求解...

    js-algorithms:JavaScript 算法和数据结构

    6. 树(Tree):分层数据结构,如二叉树(Binary Tree)、二叉搜索树(BST)、AVL树、红黑树等。 7. 图(Graph):由节点和边构成,用于表示复杂的关系。 二、算法 算法是一系列解决问题或执行任务的明确指令。在...

    树状数组案例示例.zip

    3. **简单易用**:相比于红黑树、AVL树等高级数据结构,树状数组的实现相对简单,容易理解和操作。 ### 五、树状数组的应用场景 1. **区间求和**:例如,统计一段连续数列的和。 2. **区间最值**:找到一个区间内...

    The-structure-of-data-and-Algorithm:数据结构和算法的python实现、以及Python实现机器学习算法

    5. 树结构:二叉树、AVL树、红黑树等,及其遍历方法。 6. 排列组合:回溯法、递归法求解全排列和组合问题。 7. 字符串处理:KMP算法、Rabin-Karp算法用于字符串匹配。 在机器学习部分,Python库如Scikit-Learn、...

    data-structures-and-algorithms-in-python

    9. **树(Tree)**:树数据结构包括二叉树、平衡树(如AVL树和红黑树)、B树等,广泛应用于文件系统、数据库索引等场景。 10. **图(Graph)**:图用于表示对象之间的关系,包括有向图和无向图,常见应用有社交网络...

Global site tag (gtag.js) - Google Analytics