您当前的位置: 首页 >  数据结构与算法

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【数据结构与算法】AVL树的Java实现

星拱北辰 发布时间:2020-02-23 11:41:45 ,浏览量:0

前情提要

之前只写了一些AVL树核心算法,这里给出一个AVL树的完整实现。

AVL树是平衡查找二叉树,不仅能避免二叉搜索树出现斜树的状况,更是能保持比较标准的O(log2N),但AVL树可能需要很多次的各种调整:

  • 左儿子单旋转
  • 左儿子双旋转
  • 右儿子单旋转
  • 右儿子双旋转

最终使得AVL树维持平衡,保持较高查找效率。 调整在插入删除每一次的不平衡后进行,可能简单也可能复杂,但基本的四种“动作”是固定的。

AVL树作为数据结构,说简单也简单,说复杂也复杂。对初学者来说,一定要掌握的是检测和调整AVL树平衡(含四种旋转)的代码,随着学习的深入,应该尝试编写AVL树的完整代码。

这里就给大家提供一份可用的完整代码。

功能介绍
  • void insert(x) → Insert x
  • void remove(x) → Remove x (unimplemented)
  • boolean contains(x) → Return true if x is present
  • boolean remove(x) → Return true if x was present
  • Comparable findMin() → Return smallest item
  • Comparable findMax() → Return largest item
  • boolean isEmpty() → Return true if empty; el
关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0446s