==知识点== 1.泛型 2.Set集合 3.TreeSet 4.数据结构-二叉树 5.数据结构-平衡二叉树 ==用到的单词== 1.element[ˈelɪmənt] 要素 元素(软) 2.key[kiː] 计算机或打字机的) 键; 3.type[taɪp] 类型; 4.value[ˈvæljuː] 值 5.genericity 泛型 6.comparable[ˈkɒmpərəbl] 可比较的; 7.compare[kəmˈpeə(r)] 比较 8.comparator[kəmˈpɜrətər…
3.平衡二叉树 平衡二叉树,又称AVL树,它是一种特殊的二叉排序树. 3.1 平衡二叉树的四种自旋 这个左旋.右旋,在方向上和我观念里的是相反的. 查了之后才知道: 1.外侧插入:LL.RR,都是在最边边上.2.内侧插入:LR.RL,往里面来了些. (1)LL旋转和RR旋转:     void RR_Rotate(AVLTree *root){ AVLTreeNode* rchild = (*root)->Right; (*root)->Right = rchild->Left; rch…
平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,同时,平衡二叉树必定是二叉排序树. 高度差可以用平衡因子bf来定义,我们用左子树的高度减去右子树的高度来表示bf,即-1<|bf|<1. 引入平衡二叉树是由于二叉排序树,在某些情况会导致树的高度一直的增加,比如一组有序的数据,在查找或创建时递归层级会很深,导致方法栈…
平衡二叉树:对于任意一个节点,左子树和右子树的高度差不能超过1 package Date_pacage; import java.util.ArrayList; public class AVLTree<K extends Comparable<K>, V> { private class Node{ public K key; public V value; public Node left, right; public int height; public Node(K key…
首先说下好久没更新了,最近打游戏和工作都有点多,o(^▽^)o. 写这个AVL发现自己的代码风格好差,尤其是变量命名这块,后来意识到了,想去改,但是太多了,改了几个就不想改了,做这个是记录下自己的成长吧. 另外说下,调这个AVL真心有点烦了,前面写了一个,但是逻辑有点乱,基本的删除都测差不多ok了,发现一个bug,实在不想去看那代码,太乱了,后来强b这自己去重新写,花了1个多小时(当然是加班的时候理),理清了,晚上9点多回来,大概3个小时,把del这块从新改完了,写代码真的是一个时候一个思想,发…
若向平衡二叉树中插入一个新结点后破坏了平衡二叉树的平衡性.首先要找出插入新结点后失去平衡的最小子树根结点的指针.然后再调整这个子树中有关结点之间的链接关系,使之成为新的平衡子树.当失去平衡的最小子树被调整为平衡子树后,原有其他所有不平衡子树无需调整,整个二叉排序树就又成为一棵平衡二叉树. 失去平衡的最小子树是指以离插入结点最近,且平衡因子绝对值大于 1 的结点作为根的子树.假设用 A 表示失去平衡的最小子树的根结点,则调整该子树的操作可归纳为下列四种情况. ( 1 ) LL 型平衡旋转法 由于在…
平衡二叉树(Self-Balancing Binary Search Tree/Height-Balanced Binary Search Tree),是一种二叉排序树,当中每个节点的左子树和右子树的高度差至多等于1. 平衡二叉树的前提是二叉排序树,不是二叉排序树的都不是平衡二叉树. 平衡因子BF(Balance Factor):二叉树上节点的左子树深度减去右子树深度的值. 最小不平衡子树:距离插入节点近期的.且平衡因子的绝对值大于1的节点为根的子树. 下图中,新插入节点37时.距离它近期的平衡…
1,Node.java package com.cnblogs.mufasa.BalanceBinaryTree; public class Node { Node parent; Node leftChild; Node rightChild; int val; public Node(Node parent, Node leftChild, Node rightChild,int val) { super(); this.parent = parent; this.leftChild = l…
在计算机科学中,树是一种十分重要的数据结构.树被描述为一种分层数据抽象模型,常用来描述数据间的层级关系和组织结构.树也是一种非顺序的数据结构.下图展示了树的定义: 在介绍如何用JavaScript实现树之前,我们先介绍一些和树相关的术语. 如上图所示,一棵完整的树包含一个位于树顶部的节点,称之为根节点(11),它没有父节点.树中的每一个元素都叫做一个节点,节点分为内部节点(图中显示为黄色的节点)和外部节点(图中显示为灰色的节点),至少有一个子节点的节点称为内部节点,没有子元素的节点称为外部节点或…
20162325 2017-2018-2 <程序设计与数据结构>第8周学习总结 教材学习内容概要 二叉查找树是一棵二叉树,对于其中的每个结点,左子树上的元素小于父结点的值,而右子树上的元素大于等于父结点的值. 最有效的二叉树是平衡的,所以每次比较时可以排除一半的元素. 如果没有其他操作,二叉查找树的树形由元素的添加次序来决定. 当从二叉查找树中删除元素时要考虑三种情形,其中的两种比较简单. 当从二叉查找树中删除两个子结点的结点时,比较好的办法是用它的中序后继来取代它. 可以对二叉查找树进行旋转…