![](https://img-blog.csdnimg.cn/2b73412a1f6642a9b885ff692945a329.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 64
数据结构
~~^^
这个作者很懒,什么都没留下…
展开
-
【Java】MySQL jdbc连接器中的LRU是如何实现的
1. JDBC中的LRUCache:package com.mysql.cj.util;import java.util.LinkedHashMap;import java.util.Map.Entry;public class LRUCache<K, V> extends LinkedHashMap<K, V> { private static fin...原创 2019-11-25 21:41:51 · 192 阅读 · 0 评论 -
【数据结构】红黑树(Red Black Tree)
前言以前在了解HashMap时得知JDK8的HashMap是用红黑树实现的,而且网上还流传着手写红黑树的梗,数据结构课上也没交过这个,于是就学学吧。一、为什么要用红黑树因为相较于普通的二叉搜索树,红黑树具有平衡性。这与AVL树相似,在增加或删除元素后可能会出现旋转的操作。但是相较于AVL树严格的约束(左右子树的高度之差的绝对值最多为1),红黑树的平衡约束更为宽松,其旋转操作的时间复杂度为O...原创 2020-02-28 20:22:16 · 547 阅读 · 0 评论 -
【数据结构】B树(B Tree)
一、定义B树是一个平衡的多路搜索树,每个节点可以存储多个元素。二、性质对于m阶B树(m>2),设其任意节点存储元素的个数为x,那么:对于根节点:1 <= x <= m-1对于非根节点:ceil(m/2) - 1 <= x <= m-1如果有子节点,子节点个数为 y = x+1,根节点子节点个数:2 <= y <= m非根节点子...原创 2020-02-28 12:24:52 · 1028 阅读 · 0 评论 -
【扩展知识】LRU cache
http://ifeve.com/动手实现一个-lru-cache/转载 2019-08-13 22:05:14 · 126 阅读 · 0 评论 -
【数据结构】图 最小生成树 克鲁斯卡尔 kruskal
找最小边,合并边为了避免形成环,使用并查集来记录连通分量#include <iostream>#include <bits/stl_algo.h>using namespace std;int n, m;int u[100], v[100], w[100], p[100], r[100];int cmp(const int i, const int j) ...原创 2019-06-17 10:42:08 · 190 阅读 · 0 评论 -
【数据结构】二分图 匹配 匈牙利算法
简介回头补上题目 HDOJ 2063 :: 过山车代码import java.util.*;public class Main { public static int map[][]=new int [1010][1010];//男生和女的有关系数 public static int match[]=new int[1010]; //匹配人的编号;0...原创 2019-03-28 23:26:05 · 163 阅读 · 0 评论 -
【数据结构】二分图
二分图只使用两种颜色,将图的顶点染色,如果能保证每个相连的顶点颜色不同的话,这个图则是二分图。二分图的判断import java.util.Scanner;public class Main { static Scanner in = new Scanner(System.in); static int V = 3;//顶点数 static int[] co...原创 2019-03-26 23:13:59 · 1275 阅读 · 0 评论 -
【数据结构】图 最小生成树 Prim算法
什么是最小生成树举个栗子:假如有一些点,它们通过边相互连接,每条边都带有权值。现在让你从这些边中选出一种方案,保证能使所有点在一棵树上且所有边的权值和在所有可行方案中最小。Prim算法如何找到最小生成树首先将图中所有的边添加到优先队列中,按升序排列。然后权值最小的边出队,将该边的两端的点那数组标记下来。注意当取出边的两端点都层被标记过,该边作废。最后可以没有作废的边,生成最小生成树。代码...原创 2019-03-29 21:55:02 · 956 阅读 · 0 评论 -
【数据结构】图的连通分量
什么是连通分量如图,在上面的图中有12个点,他们连接构成了三个部分。{0,1,2,6,3,4,5},{7,8},{9,10,11,12}这三个部分就是这个图的连通分量。如何计算联通分量使用dfs可以遍历一个点所在连通分量中所有的点。在每次遍历时,我们可以对一个连通分量中的点进行标记、染色。例如:首先,声明一个变量count用于统计,以及标记数组color[]。然后,从0开始遍历,我们会...原创 2019-03-29 17:00:57 · 25074 阅读 · 1 评论 -
【数据结构】图 Dijkstra算法 最短路 Java实现
import java.util.*;public class Main { public static void main(String[] args){ //起点 String start = "A"; //建立图 HashMap&lt;String, List&lt;Node&gt;&gt; map = new ...原创 2019-03-06 19:59:35 · 408 阅读 · 1 评论 -
【数据结构】完全二叉树判定
pta题号 L3-010判断一棵树是否是完全二叉树的思路1&gt;如果树为空,则直接返回错 2&gt;如果树不为空:层序遍历二叉树 2.1&gt;如果一个结点左右孩子都不为空,则pop该节点,将其左右孩子入队列; 2.1&gt;如果遇到一个结点,左孩子为空,右孩子不为空,则该树一定不是完全二叉树; 2.2&gt;如果遇到一个结点,左孩子不为空,右孩子为空;或者左右孩子都为空;则...原创 2019-02-27 21:23:04 · 699 阅读 · 0 评论 -
【数据结构】二叉树的先序遍历
类似于DFS,一条道走到黑,再返回上一层找路。static class TreeNode{ public int val; public TreeNode leftTreeNode; public TreeNode rightTreeNode; TreeNode(int val){ this.val = va...原创 2018-09-20 23:31:52 · 322 阅读 · 0 评论 -
【数据结构】二叉树的层次遍历
同BFS算法一样,用队列实现。每次遍历先将一层的节点入队,然后在挨个出队,每个节点出队的同时,再将他的子节点入队。循环往复,直到最后队列为空为止。 class TreeNode{ public int val; public TreeNode leftTreeNode; public TreeNode rightTreeNode; ...原创 2018-09-20 23:13:42 · 511 阅读 · 0 评论