数据结构
杰夫·王盖茨
On the way!
展开
-
蓝桥杯2021省赛填空题最后一题:图的遍历和最大公因数(小蓝的图由 2021 个结点组成,依次编号 1 至 2021。)
蓝桥杯2021省赛填空题最后一题:/**小蓝的图由 2021 个结点组成,依次编号 1 至 2021。对于两个不同的结点 a, b,如果 a 和 b 的差的绝对值大于 21,则两个结点 之间没有边相连;如果 a 和 b 的差的绝对值小于等于 21,则两个点之间有一条 长度为 a 和 b 的最小公倍数的无向边相连。请计算,结点 1 和结点 2021 之间的最短路径长度是多少。例如:结点 1 和结点 23 之间没有边相连;结点 3 和结点 24 之间有一条无 向边,长度为 24;结点 15 和原创 2021-05-08 16:12:25 · 762 阅读 · 0 评论 -
全排列-java实现 递归和回溯 交换两种方式
首先我们用一种比较容易理解的回溯方式–将我们需要做全排列的所有元素想象成一颗树,我们只用对这个树进行遍历即可,把结果放入集合中去就行了;放入的条件当然是集合中元素的数量跟我们给定的元素数量相等;那[1,2,3]举例:那么这种方式对应的代码:package suanfa;import java.util.LinkedList;import java.util.List;public c...原创 2020-04-29 18:39:09 · 665 阅读 · 3 评论 -
java怎么打印一颗二叉树(赫夫曼树,排序树,avl树等)的结构
相信有好多正在学习树的同学为一个事情而苦恼——一个给定二叉树或者是我们进行某种操作之后的二叉树不会遍历看到他的结构!这个问题也苦恼了我好久,当我解决了之后就想立刻分享出来供大家消遣;先来看一下运行后的结果:这哪个是根结点等的呢,看代码就一目了然了!首先,这个方法使用与任何二叉树结构你也可以把它更改从而实现对于赫夫曼树的那种排除新增结点的方式结构从而更清楚;比如这种总之,这是一个适用大多...原创 2020-04-21 21:53:08 · 462 阅读 · 1 评论 -
八皇后问题解答-最经典的回溯算法(递归和非递归)+暴力-java编写最简代码
八皇后问题来源:八皇后问题,一个古老而著名的问题,是回溯算法的典型案例。该问题由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有 76种方案。1854 年在柏林的象棋杂志上不同的作者发表了 40 种不同的解,著名数学家高斯说有76种,但是实际上是有92种;...原创 2020-04-07 18:07:27 · 1047 阅读 · 2 评论 -
java实现赫夫曼树以及赫夫曼编码和解码(用byte[])
首先对于赫夫曼编码有个大概的理解:赫夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。赫夫曼编码,主要目的是根据使用频率来最大化节省字符(编码)的存储空间。(举例来说...原创 2020-04-07 17:35:11 · 1040 阅读 · 5 评论 -
怎么理解KMP算法中的next数组(为甚有时候加一有时候不加一?)
KMP算法怎么来的和找规律,以及对于BF算法他的主要区别就不再赘述我们,我们来说一下怎么用最快的速度加上已知规律找到给定字符串的next数组(C语言中和java中都适用):我们已经找到了部分规律:next数组中的值可能和已匹配部分字符串的前缀和后缀有关系,我们通过例子和解释来了解一下以后什么具体点的关系:假设:模式串T为:a b a b c对于各个不匹配位置的已匹配位可能有:a ...原创 2020-03-25 14:41:14 · 2272 阅读 · 2 评论