- 博客(9)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注
原创 数据结构之字典树
一 字典树字典树(Trie,/tri:'i:/,又称前缀树):1、多叉树2、专门用于字符串处理,不把整个字符串看做一个整体,而是把每个字符看做一个整体二 结点定义每个节点存储一个字符和与后继字符的关系,对于不考虑大小写的英语单词,定语如下:class Node{ char c; Node next[26]; }问题:如果考虑大小写,或者存储的是其他语言,如俄语字符,每个字符的后继字符可能就不是26个,如此,数据结构就不够灵活了?解决1:考虑不同语言,不同情况,代码如
2020-11-29 11:16:32 205 1
原创 如何证明(a+b)/2就是ab的中点?
一、证明如下二 程序中的应用有时候我们在写程序时,会对数组等等进行某些操作,可能会有查找中点位置的需求。这是有一个代码书写的技巧:计算中点时使用算式: mid = a + (b - a) / 2 原因是,假设a,b是int类型的变量且a,b是比较大的数, a + b可能导致溢出,而上述算式可以减少该问题发生的可能性。b>...
2020-11-26 16:30:16 1929
原创 Java中Comparable和Comparator接口的区别
背景:在学习数据结构二叉堆之后,想通过练习一些题目来加深对知识的理解。在问题解决过程中遇到了一个问题:我实现的堆是最大堆,堆顶元素是最大值(针对Integer类型来说),但是我希望堆顶元素是最小值。换句话说,对于Integer类型,java通过Comparable接口内置了比较规则,即符合算数逻辑运算的 “1小于2”。但是,我的需求是“1大于2”,这就需要我在外部通过Comparator定义新的比较规则,即数字小的比较大一、接口定义以下内容参考JAVA API官方文档。 泛型接口Comparabl
2020-11-24 18:18:47 424
原创 数据结构之优先队列
一 优先队列普通队列:先进先出优先队列:出队和优先级相关,与入队顺序无关动态选择优先级较高的元素出队。优先队列中的元素不是固定不变的,每次出队前都有可能有新的元素入队,每次出队时都要从此刻队列中的所有元素中选择优先级最高的元素 二 应用场景普通队列,现实生活中的各种排队现象,排队上车,排队买票,排队吃饭等等优先队列,操作系统中的任务调度等等...
2020-11-22 16:03:39 339
原创 数据结构之堆
一 定义堆(最大堆):1. 完全二叉树2. 树中的每个节点(包含的元素值)都大于或等于左、右孩子节点最小堆的定义与之类似。二 底层实现 逻辑结构是完全二叉树的数据,可以采用顺序存储,即数组实现。存储结构需要体现逻辑结构,即要能够存储元素(或数据),更重要的是要能存储数据之间的关系。采用数组作为底层实现后,索引成为了元素的位于标识方式,元素的访问只能通过索引,索引相当于“地址”,于是元素之间的关系也就
2020-11-22 13:56:21 184
原创 数据结构之集合
背景:接下来要学习集合Set,这种高层的数据结构。所谓“高层的数据结构”,就是我们先定义好该数据结构的使用接口,有了这些使用接口和该数据结构本身维持的性质(或本身具有的特点),我们就可以在应用中使用它们,而它们的具体实现可以是是多种多样的。类似的数据结构如栈、队列。例如,栈定义了入栈和出栈等使用接口或操作;特点:后进先出;可以基于数组和链表进行实现。它可以解决“后进先出”类型的问题,如:系统栈程序调用、子弹射击等一 集合特点:每一个元素只存在一份,即不存储重复元素应用:依据该数据结构的特点——“去重
2020-11-18 15:33:48 678
原创 从汉诺塔学习递归类问题的求解方法
(可忽略)背景:首先,关于标题的大言不惭,表示抱歉。目前,网上有很多关于汉诺塔求解的博文,我看了一些,感觉大致相同。首先都是圆盘移动的规律讲解了一下,然后贴上了解题代码。对递归的本质,没有进行深入的探究,可能也能解决当前的汉诺塔问题,但是给你一个新的递归类问题去解决,还是不行。在学习了imooc刘老师的课程后,对递归有了更清晰的认识,因此写此博文,总结递归类型问题的求解方法。希望看的人也可以有所收获,谢谢。一 递归本质上,递归是将原来的问题,转化为更小的同一问题二 递归案例分析此部分通过一个简单的案
2020-11-05 17:17:09 952 2
jdk-8u161-windows-x64.zip(免费有效)
2021-09-11
Windows 快捷键问题
2023-03-04
第一发帖子,没有目的,仅仅测试显示效果
2022-03-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人