`
liuxinyu95
  • 浏览: 31052 次
  • 性别: 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

相关推荐

    AVL树与红黑树实现(可视化界面)

    `Form1.Designer.cs`、`Form1.resx`和`Form1.cs`可能涉及到用户界面的设计和逻辑,`RBTree.cs`和`AVLTree.cs`分别实现了红黑树和AVL树的类,而`TreeGraphics.cs`可能是用来绘制和展示树的图形部分,`MinAreaDraw.cs`...

    红黑树和AVL树的实现

    AVL树的平衡性比红黑树更强,因此在查找效率上通常优于红黑树,但插入和删除操作可能需要更多的旋转,导致更复杂的实现。红黑树的平衡要求相对较宽松,插入和删除操作的代价较低,且在实践中表现良好,是许多语言...

    红黑树及AVL树常见平衡树实现

    尽管AVL树的插入和删除操作可能比红黑树稍复杂,但它们通常具有更好的平衡性能,因此在查找操作上可能更快。 在学习和实现红黑树与AVL树的过程中,理解它们的插入和删除算法至关重要。插入操作通常涉及在树中找到新...

    操作系统实验·AVL树转红黑树·清华大学电子工程系.zip

    在操作系统的学习过程中,数据结构扮演着至关重要的角色,特别是树形数据结构,如AVL树和红黑树。这两者都是自平衡二叉搜索树,能够保证查找、插入和删除操作的高效性。 AVL树是最早被提出的自平衡二叉搜索树,由G....

    AVL树-红黑树-B树.ppt

    AVL树-红黑树-B树.ppt

    AVL树/B树/红黑树/二叉搜索树/并查集/哈夫曼树/字典树实现合集(C++)

    本文将深入探讨几种重要的数据结构,包括AVL树、B树、红黑树、二叉搜索树、并查集、哈夫曼树和字典树,并概述它们的实现原理和应用场景。 首先,我们来看**AVL树**,它是一种自平衡的二叉搜索树。在AVL树中,任意...

    AVL-红黑树-前缀树

    AVL树、红黑树和前缀树是数据结构与算法中的重要概念,它们在高效地存储和检索数据方面有着广泛的应用。以下是关于这三种数据结构的详细解释: 1. AVL树: AVL树是一种自平衡二叉搜索树,由G. M. Adelson-Velsky和E...

    AVL Tree 代码实例

    AVL树是一种自平衡二叉查找树(BST),由G. M. Adelson-Velsky和E. M. Landis于1962年提出,...通过深入研究提供的代码实例,可以更直观地了解AVL树的插入、删除操作及其平衡机制,这对于编程和软件开发工作非常有益。

    the rotation of AVL tree

    avl tree 中的各种旋转

    AVLTree的实现与分析

    本设计实现了AVLTree的所有的实现功能,也包括BinSTree与AVLTree的转换

    GNU的自平衡二叉查找树(AVL tree、redblack tree等)源代码

    红黑树通过颜色规则来平衡树,减少了旋转的需要,因此在插入和删除操作时,性能表现通常比AVL树更好,但查找性能略逊一筹。 在GNU的源代码库中,你可以找到AVL树和红黑树的实现,这为理解和学习这些数据结构提供了...

    avltree的简单实现

    一个avltree的简单实现,便于了解avltree的结构及应用

    AVltree_avltree_

    3. `avltree_test.c`:这是一个测试文件,用于验证`avltree.c`中的AVL树实现是否正确。通常,它会包含一些测试用例,通过插入、删除和查找操作来检查AVL树的正确性和性能。 4. `avltree_test`:这个可能是编译后的...

    AVL Tree source code

    AVL Tree source code

    C语言实现平衡二叉树(AVL tree)例子

    这是一个用C实现的AVL tree,带MFC的测试程序。 在我的机器上(P4 T2050 Duo, 1G memory)列C盘所有文件并组织成AVL tree,一共是70000多个文件和目录,耗时大约是5-7秒

    AVLtree.zip_avl_avl java_avl tree_avltree_class A

    AVL tree using node from data structure and algorithm java class, create a minimum AVL tree with minimum number of nodes at given high

    avltree算法.rar_avl_avl tree

    在"www.pudn.com.txt"和"AVLTree"这两个文件中,可能包含了关于AVL树的更多详细信息,如实现代码、示例或进一步的解释。学习AVL树不仅能够理解其基本概念和操作,还能深入理解数据结构的设计和优化,这对于理解和...

    AVL tree AVL树

    AVL树,全称为Adelson-Velsky and Landis树,是最早被提出的自平衡二叉查找树(BST)之一。这种数据结构以其发明者的名字命名,由Georgy Adelson-Velsky和Emanuel Landis在1962年提出。AVL树的核心特性在于它的平衡...

Global site tag (gtag.js) - Google Analytics