摘要:
jdk1.8之前是数组+链表的形式,后面会介绍jdk1.8对hashMap的改动:数组+链表+红黑树 红黑树是O(logn),链表是O(n),大于等于7就转成红黑树,小于7时候O(longn)要大。 我们知道java.util.HashMap不是线程安全的,因此如果在使用迭代器的过程中有其他线程修改 阅读全文
摘要:
package map; import org.junit.Test; import com.mysql.cj.api.x.Collection; import map.TreeMap1.AscendingSubMap.AscendingEntrySetView; import map.TreeMap1.NavigableSubMap.SubMapEntryIterator; impor... 阅读全文
摘要:
二叉树他们都需要满足一个基本性质--即树中的任何节点的值大于它的左子节点,且小于它的右子节点。按照这个基本性质使得树的检索效率大大提高。我们知道在生成二叉树的过程是非常容易失衡的,最坏的情况就是一边倒(只有右/左子树),这样势必会导致二叉树的检索效率大大降低(O(n)),所以为了维持二叉树的平衡,大 阅读全文
摘要:
解决方法 第一步 第二步 在工具栏选择 , Run Configurations 设置在运行前不检查错误 阅读全文
摘要:
2-3树:插入变成2个节点正常插,变成3个节点就要提升中间节点和分裂子节点,满足:要么没有子节点,要么2个子节点,要么3个子节点。 2-3-4树:插入变成2个不动,插入变成3个不动,插入变成4个提升原来中间节点和分裂子节点,满足:要么没有子节点,要么2个子节点,要么3个子节点,要么4个子节点。 2节 阅读全文
摘要:
左倾红黑树的另一种定义是满足下列条件的二叉查找树: 2-3树规定,2节点为黑色,3节点小红大黑,并且父节点链接的是大黑节点。小红在大黑的坐下,中间值节点在小红的右边。 2-3树规定了红黑树最终的样子和颜色,但是中间的旋转和变色过程 是通过2-3树的变换过程推到出来的,规则如下: 红黑树就是用红链接表 阅读全文
摘要:
public class ConvertSortedArrayToBinarySearchTree { public static TreeNode sortedArrayToBST(int[] nums) { if (nums == null || nums.length == 0) { return null; } ... 阅读全文
摘要:
public class InorderSuccessorInBST {//平衡二叉树查找后继结点 public TreeNode inorderSuccessor(TreeNode root, TreeNode p) { if (p == null) { return null; } if (getLastEnt... 阅读全文
摘要:
public class AVLMap implements Iterable> { private int size; private AVLEntry root; private Comparator comp; private LinkedList> stack = new LinkedList>(); private int compare(K ... 阅读全文
摘要:
public class BitSet1 implements Cloneable, java.io.Serializable { // >>>左边补0, > ADDRESS_BITS_PER_WORD;//除以64,右移6位,取整。 //1-6位全部移出去,第6位=32移出去了变成了0。第7位=64变成第一位=1,第8位=128变成第二位=2。从第7位到32位全部除以6... 阅读全文