前言 把 Java 容器的学习笔记放到 github 里了,还在更新~其他的目前不打算抽出来作为文章写,感觉挖的还不够深,等对某些东西理解的更深了再写文章吧Java 容器目录如下: Java 容器 一、概述 二、源码学习…
分类:树
JAVA数据结构之AVLTree平衡二叉树
public class AVLTree<K extends Comparable<K>,V>{ private class Node{ public K key; public V value;…
【BZOJ1564】[NOI2009]二叉查找树【区间DP】
【题目链接】 这是一棵Treap,而且我们知道BST的中序遍历的数据值是递增的,那么我们按照数据值排个序,就得到中序遍历了。然后就变成区间DP啦。 设dp[l][r][m]表示,区间[l, r]的节点组成的树中的,根节点…
动态查找—二叉排序树
动态查找的大多借助于树类型的结构,这里只介绍最简单的一种——二叉排序树。 二叉排序树是这样一种树:它的要么是空的;如果它的左子树不为空,那么左子树上所有节点的值均小于根节点的值;如果右子树不为空,那么右子树上的值均大于根…
数据结构与算法(十):红黑树与TreeMap详细解析
本文目录 一、为什么要创建红黑树这种数据结构 在上篇我们了解了AVL树,既然已经有了AVL这种平衡的二叉排序树,为什么还要有红黑树呢? AVL树通过定义我们知道要求树中每一个结点的左右子树高度差的绝对值不超过1,其是一颗…
【数据结构】红黑树基础
1、红黑树 红黑树是一种自平衡二叉搜索树,在实际应用中有很广泛的用途。STL中的set, multiset, map, multimap的底层均是由红黑树实现的。 红黑树有一下4个特性:(根据后面的例子看以下几个特性) …
两种平衡二叉树的比较: AVL树和红黑树
1 好处 及 用途 红黑树并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。 红…
平衡二叉树的C语言实现(创建、插入、查找、删除、旋转)【数据结构】
平衡二叉树(AVL)或者是一颗空树,或者是具有下列性质的非空二叉搜索树: (1). 任一结点的左、右子树均为AVL树; (2). 任一结点的左、右子树高度差的绝对值不超过1。 对于二叉树中任一结点T,其“平衡因子”(Ba…
线索二叉树建立、中序遍历、查找前驱后继、插入
#include <stdio.h>/*2009.10.24白鹿原*/ #include <malloc.h> #include <conio.h> typedef char Data…
二叉排序树的创建,查找,插入,删除
二叉排序树或者是空树,或者是具有以下性质的二叉树: (1)若左子树非空,则左子树上所有结点的关键字的值均小于它的根结点的关键字的值 (2)若右子树非空,则右子树上所有结点的关键字的值均大于等于它的根结点的关键字的值 (3…
满二叉树和完全二叉树
满二叉树一定是完全二叉树但是完全二叉树不一定是满二叉树。千万不要搞混了。 满二叉树:二叉树中除最下一层的叶结点外,每层的结点都有两个子节点。如图: 完全二叉树:
初探Java8中的HashMap
HashMap是我们最常用的集合之一,同时Java8也提升了HashMap的性能。本着学习的原则,在这探讨一下HashMap。 原理 简单讲解下HashMap的原理:HashMap基于Hash算法,我们通过put(key…