![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
玩转数据结构和算法
百味皆苦
人生百味,百味皆苦
展开
-
Merchant‘s Guide To The Galaxy使用java解法
题目描述大意就是我成了地球首富,然后有很多钱,但是地球已经不适合人类居住了,需要跑到银河系去做生意,但是银河系使用的是罗马字母表示钱,所以座位程序员的我打算自己写一个罗马字母和十进制数字互转的小程序,以帮助我做生意。罗马字母有: I,V,X,L,C,D,M转换规则:1. I:可以表示十进制数字1,V:可以表示十进制数字5,X:可以表示十进制数字10,L:可以表示十进制数字50,C:可以表示十进制数字100,D:可以表示十进制数字500,M:可以表示十进制数字1000;2.I, X, C,原创 2020-08-14 19:16:49 · 576 阅读 · 0 评论 -
并查集(孩子指向父亲的树结构)
目录并查集实现哪些功能 并查集接口 使用数组实现并查集 并查集size优化并查集深度优化并查集路径压缩优化 并查集实现哪些功能 并查集接口 package com.suanfa.unionfind;/** * 并查集接口,并查集是一种孩子指向父亲的树结构 * @author Administrator * */public in...原创 2019-02-14 14:59:35 · 783 阅读 · 0 评论 -
字典树Trie
目录什么是字典树 基于TreeMap的字典树 不使用map实现字典树 例题208实现一个前缀树练习211添加和搜索单词 什么是字典树 基于TreeMap的字典树 package com.suanfa.trie;import java.util.TreeMap;/** * 字典树(存储单词)基于TreeMap * @author Ad...原创 2019-02-13 17:36:18 · 153 阅读 · 0 评论 -
玩转数据结构课程总结
原创 2019-02-18 21:11:00 · 218 阅读 · 0 评论 -
自实现哈希表
目录什么是哈希表 哈希函数和哈希冲突哈希表存在的问题自实现哈希表 什么是哈希表 哈希函数和哈希冲突 哈希表存在的问题 自实现哈希表 package com.suanfa.hashTable;import java.util.Map;import java.util.TreeMap;/** * 自实现哈希表...原创 2019-02-18 21:09:06 · 972 阅读 · 0 评论 -
线段树(区间树)
目录为什么要使用线段树什么是线段树线段树融合接口线段树实现线段树例题 为什么要使用线段树 什么是线段树 线段树融合接口 package com.suanfa.segmentTree;/** * 融合接口 * @author Administrator * * @param <E> */public...原创 2019-02-13 11:16:44 · 830 阅读 · 0 评论 -
红黑树和2-3树
目录什么是红黑树 什么是2-3树 红黑树和2-3树之间的关系红黑树添加新元素红黑树实现 红黑树练习 红黑树性能分析 什么是红黑树 什么是2-3树 红黑树和2-3树之间的关系 红黑树添加新元素 红黑树实现 package com.suanfa.RBTree;import java.uti...原创 2019-02-18 15:42:53 · 368 阅读 · 0 评论 -
二叉堆和优先队列
目录什么是二叉堆 用数组实现的最大堆 优先队列 练习:计算一个数组中前K个高频元素 什么是二叉堆 用数组实现的最大堆 自定义数组类package com.suanfa.maxHeap;public class Array<E> { private E[] data; private int size; ...原创 2019-02-12 12:41:45 · 230 阅读 · 2 评论 -
基于二分搜索树的map和基于链表的map
目录映射map接口 基于二分搜索树的map 基于链表的map 用集合求两个数组的交集 用映射map求两个数组的交集 映射map接口 package com.suanfa.map;/** * 映射Map接口 * @author Administrator * */public interface Map<K,V> { void add(...原创 2019-02-11 12:31:11 · 182 阅读 · 0 评论 -
基于二分搜索树的集合set和基于链表的集合
目录集合接口基于二分搜索树的集合set基于链表的集合set 集合接口 package com.suanfa.set;/** * 集合接口 * @author Administrator * * @param <E> */public interface Set<E> { void add(E e);//添加元素,不能重复...原创 2019-02-11 12:23:25 · 130 阅读 · 0 评论 -
AVL平衡二叉树
目录什么是平衡二叉树,平衡因子 实现AVL树 基于AVL的映射map(接口在以前博客中)基于AVL的集合set(接口在以前博客中) 什么是平衡二叉树,平衡因子 实现AVL树 package com.suanfa.AVLTree;import java.util.ArrayList;/** * AVL树,平衡二叉树,优化二分搜...原创 2019-02-15 18:56:11 · 774 阅读 · 0 评论 -
二分搜索树
使用节点类自己实现二分搜索树package com.suanfa.bst;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;/** * 二分搜索树,不存在相同元素,存储的元素必须具有可比性 * @author Administrator * */public clas...原创 2019-02-05 04:16:04 · 114 阅读 · 0 评论 -
链表和递归
目录由节点构成的动态数据结构,链表 栈的方法接口基于链表实现的栈 队列接口基于链表的队列 删除链表中全部元素val,不使用虚拟节点 删除链表中全部元素val,使用虚拟节点 用递归算法删除链表中所有元素val 使用递归函数求数组和 由节点构成的动态数据结构,链表 package com.suanfa.linkedlist;/** * 链表...原创 2019-01-27 20:43:59 · 498 阅读 · 0 评论 -
基于数组的队列
目录队列接口数组队列循环队列 队列接口 package com.suanfa.queue;/** * 队列接口 * @author Administrator * * @param <E> */public interface Queue<E> { int getSize(); boolean isEmpty(); void...原创 2019-01-25 18:59:54 · 322 阅读 · 0 评论 -
基于数组的栈
目录栈的方法接口基于数组实现的栈(后进先出) 用栈实现括号匹配()【】{} 栈的方法接口 package com.suanfa.stack;/** * 栈的方法接口 * @author Administrator * */public interface Stack<E> { /** * 查询栈的大小 * @return */ int...原创 2019-01-25 18:54:37 · 284 阅读 · 0 评论 -
不要小瞧数组
目录Java自定义数组(包含了增删改查,数据结构底层实现)自定义泛型数组实现自定义动态泛型数组 Java自定义数组(包含了增删改查,数据结构底层实现) package com.suanfa.array;/** * 自定义数组 * @author Administrator * */public class AutoArray { private int[...原创 2018-12-14 14:08:33 · 156 阅读 · 0 评论