数据结构与算法
BtWangZhi
这个作者很懒,什么都没留下…
展开
-
数据结构--链表实际场景应用
时间应用场景,构造一个固定长度的列表,达到固定长度后,自动淘汰尾部的节点 /** * 固定大小的容器,当添加的个数达到上限时, * 自动淘汰添加时间最长的元素 * * @param <E> */ private static class FixElementList<E> { /** * 头指针 */ private Node<E> he原创 2021-04-28 14:15:12 · 1537 阅读 · 0 评论 -
算法--工具集合
将一个List拆分成N分List public static <T> List<List<T>> averageList(List<T> lst,int n){ //每一份的大小 int num=lst.size()%n==0?lst.size()/n:lst.size()/n+1; List<...原创 2019-03-21 19:32:34 · 530 阅读 · 0 评论 -
数据结构--BTree
一颗N阶的B-Tree树中各个节点的关键码的个数不能超过N-1,各个节点的孩子节点数不能超过N。执行插入38操作:由于被插入的节点中关键码的个数超过了2,则执行分裂,分裂的过程如下:将37左边和右边两边分隔开,37提升。B+Tree在B-Tree的基础上的变种。1 N个关键码对应N个子树,即关键码与子树一一对应。2 关键码为子树关键码中最大的值。3 终端节点通过单链表连接起...原创 2019-01-13 22:07:03 · 1131 阅读 · 0 评论 -
算法--排序
1 冒泡排序/** * 冒泡排序 说明:从第一个开始,和后面的每个数进行比较,保证第一个 位置的数在第一个位置开始是最小的,第二位置的数和后面的比较,保证 * 第二个位置的数在第二开始是最小的,后面依次类推 从另外一个角度讲就是取最小的数放在第一个位置,取第二小的数放在第二个位置,后面依次类推 * * @param data *原创 2017-05-22 01:59:59 · 303 阅读 · 0 评论 -
数据结构--二叉排序树
1 二叉排序树 1.1二叉排序树又称二叉查找树。 根节点的左子树一定小于根节点中的value值而下于右子树中的value。 1.2 尝试写类似TreeMap的集合; 每条映射的结构为static final class Entry<V, K> implements Map.Entry<K, V> { /** * 存储的key值 */原创 2017-05-11 00:36:49 · 480 阅读 · 0 评论 -
数据结构--栈
1 栈是限定仅在表尾进行插入和删除操作的线性表,允许插入和删除的一端称为栈顶、另外一端称为栈底。不含任何元素的栈被称为空栈。栈中的元素除了具有线性关系外,还有先进后出的性质。原创 2017-05-17 11:43:40 · 311 阅读 · 0 评论 -
数据结构--队列
1 队列是只允许在一段进行插入操作,在另外一端进行删除操作的线性表。 1.1顺序存储结构。约定front指针指向头元素的前一个元素,rear指向队尾元素。public class QueueCustom<E> { /** * 队列最大节点数 */ private static final Integer MAX_SIZE = 100; /** *原创 2017-05-17 19:50:08 · 267 阅读 · 0 评论 -
数据结构--二叉树
1 二叉树是树中的一种特殊情况,由一个根节点和两个互不相交分别被称为根节点的左子树和右子树组成。原创 2017-05-19 02:00:55 · 366 阅读 · 0 评论 -
算法--经典算法
1 匹配算法: 匹配开始,从长的字符串开始,匹配成功,长的和短的字符串均向后匹配,而匹配失败,则长的字符串从开始的位置向后一个字符,重新开始匹配,而短的字符串则完全从头开始。 /** * 匹配算法 * * @param str1 * 长匹配字符串 * @param str2 * 短的匹配原创 2017-05-17 23:51:05 · 506 阅读 · 0 评论 -
算法--基础算法问题
1 求最大公约数,最小公倍数/** * 求最大公约数,最小公倍数 * @param a * @param b */ public static void solve(int a, int b) { int y = a * b; if (a < b) {// 数据处理,a为最大,b为最小 int t原创 2017-05-19 21:24:38 · 280 阅读 · 0 评论