高级数据结构
文章平均质量分 92
Fly_Fly_Zhang
初学java
展开
-
数据结构-BST树(镜像&前序&中序&后序&重构)
package com.AdvancedDataStructure.BSTTree;import java.util.LinkedList;import java.util.Stack;/** * @Created with IntelliJ IDEA * @Description: BST树代码演示 * @Package: com.AdvancedDataStructure.B...原创 2019-07-04 08:54:48 · 410 阅读 · 0 评论 -
数据结构-RBTree(红黑树)
概述:红黑树是不是一颗平衡树:不是,其高度差可以达到n红黑树结点左右子树高度差:长的不能超过短的二倍。因为需要保证所有路径上黑色节点数量相等,因此若一条节点路径全部是黑色,另一条路径红黑相间也只能插入2n个。红黑树的增删效率?高于AVL树,红黑树插入最多调整两次,删除调整三次。AVL树最多调整次数达到层数次。红黑树特点:每个节点都有颜色,非黑即红。所有叶子节点都是黑色的,叶...原创 2019-07-14 12:22:22 · 882 阅读 · 0 评论 -
数据结构-SkipList(跳跃表)
前面概念性以及图例引用了这位博主博客:请点击跳跃表概述:红黑树实现了一颗高效的二叉查找树,其增删查的时间复杂度为O(log2N),但是其实现起来有点复杂。跳跃表是一种以更加便捷的方式实现了和红黑树增删查操作时间复杂度一样的数据结构。JUC并发包中提供了一个ConcurrentSkipLIstSet的实现,是一个线程安全的跳跃表,基于CAS实现的线程安全。缺点:跳跃表会浪费大量内存,在海...原创 2019-07-15 21:07:45 · 526 阅读 · 0 评论 -
数据结构-AVL树(平衡二叉树)
概述:为了达到结点的平衡,AVL树引入的四种旋转操作左孩子的左子树太高:以当前结点为根节点进行右旋操作child=node.left;node.left=child.right;child.right=node;//更新node,child的高度右孩子的右子树太高:以当前结点为根节点进行左旋操作child=node.right;node.right=child.le...原创 2019-07-07 12:14:25 · 249 阅读 · 0 评论