AVL树
数据结构---AVL树
鸟临窗语报天晴
正则表达式不是万能的,有穷自动机才是万能的。
博客已迁移至nathanli.tech
展开
-
浅析AVL树--AVL树的双旋转
潜析AVL树–AVL树的双旋转 接上篇博文:简析AVL树–AVL树的概念及单旋转 AVL树如何恢复平衡之双旋转 首先假设我们有一颗已经处于平衡的AVL树: 上篇博文已经解决了LL和RR两种情况的平衡恢复解决方案----单旋转。这篇博文来看双旋转情形。这时候我们插入结点7,我们可以发现这时这棵树并没有失去平衡: 但是,如果我们继续插入结点8,这棵树就会再次处于失衡状态: 我们首先可以发现结点9...原创 2020-02-19 17:19:53 · 772 阅读 · 1 评论 -
浅析AVL树--AVL树的C++实现
AVL树的C++实现 基于前两篇博文: 简析AVL树–AVL树的概念及单旋转 潜析AVL树–AVL树的双旋转 可以写出AVL的C++实现如下: 首先是AVL树的定义: File avltree.h class AVLTree { public: struct node; typedef struct node* NodePointer; AVLTree(int d); void init...原创 2020-02-19 17:19:35 · 276 阅读 · 0 评论 -
浅析AVL树--AVL树的概念及单旋转
什么是AVL树? AVL树是一种带有平衡条件的查找二叉树。一般来说,要求一棵AVL树的左右子树高度最多相差1。如下图所示,下面是一个平衡了的AVL树,它的每一个结点的左右子树高度最多相差1。 当我们插入了新结点1之后,这棵就不是平衡二叉树了,因为它的根节点左右子树高度相差2: 我们可以观察到之所以引起了不平衡是因为新插入的结点1破环了根节点的平衡性,使得根节点左右子树相差2。对于上述的情况,我...原创 2020-02-19 15:27:28 · 366 阅读 · 1 评论