- 博客(17)
- 收藏
- 关注
原创 SpringBoot:Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory
Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
2022-04-16 16:17:06 578
原创 基于用户的协同过滤算法的实现(JAVA)
协同过滤算法:应用:各个影视app的影视推荐,购物app里面的买了这个物品的人也喜欢…分类:分为基于用户的协同过滤算法和基于物品的协同过滤算法本文使用的协同过滤算法为基于用户的协同过滤算法:杰卡德相似系数(Jaccard similarity coefficient) 其实就是集合的交集除并集/* user1:A B C user2:A B D user3:B D F user4:F G H */import lombok.Data;import
2021-01-27 11:21:53 2210
原创 递归--8皇后问题
8皇后问题:8*8的国际象棋中,摆8个皇后,任意两个皇后之间都不会处于同一行,同一列或者是同一斜线上,问有多少中摆法?思路:第一个换后先放在第一行第一列第二个皇后放在第二行的第一列开始,判断是否可行,如果不可行,则继续放在第二列,第三列。。。直到找到合适的位置继续放置第三个皇后,如同步骤2当得到一个正确解的时候,递归中的栈退回到上一个栈时,就会开始回溯,即将第一个皇后放在第一列的所有正确解得到然后回头继续将第一个皇后放在第二列,。。。后面陆续执行2345678列代码public cla
2020-07-03 23:11:50 165
原创 学习数据结构的第七天--用栈完成表达式求值
使用栈完成表达式的计算:思路:通过一个index值来遍历表达式如果扫描到的是一个数,直接入数栈如果扫描到的是一个符号,分如下情况:1:如果符号栈为空,直接入栈2:如果符号栈有操作符,进行比较,如果当前操作符的优先级小于或等于栈顶元素的优先级,则从数栈中取出两个数,再从符号栈中将栈顶元素pop出,得到结果,再将结果入数栈。若当前操作符大于栈顶元素的操作符,则直接入符号栈。当表达式扫描完,就顺序从数栈和符号栈pop出相应的数与符号最后在数栈中只有一个数,即为结果代码: public st
2020-06-19 23:14:11 130
原创 学习数据结构的第六天--栈
栈:栈是一个先入后出的有序列表栈是限制线表中的元素的插入和删除只在线性表的同一段进行的一种特殊的表。允许插入和删除的一段为变化的一段,称为栈顶。另一端为固定的一端,称为栈底。根据栈的定义,最先放入栈中的元素放在栈底,删除最先删除的是栈顶元素。栈的应用:子程序的调用,处理递归调用,表达式的转换,二叉树的遍历用数组模拟栈:思路:定义一个top表示栈顶,初始化为-1入栈的时候,有数据加入时,top++,stack[top]=data出栈的操作:int value=stack[top] ;
2020-06-17 22:48:12 101
原创 学习数据结构的第五天--单向环形链表(约瑟夫问题)
Josepfu问题:设 编号1,2,…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列。它的下一位又从1开始,数到m的人出列,一次类推,直到所有人都出列,由此产生一个出队列编号的序列。思路:构建单向环形链表先创建一个节点first指向自己,并形成环形当我们每创建一个节点,就把该节点,加入到已有的环形链表中即可遍历环形链表3.先让一个辅助节点curBoy指向first节点4.通过while循环遍历该环形链表即可:curBoy.next=f
2020-06-15 23:42:22 152
原创 学习数据结构的第四天--双向链表
双向链表有next和prenext:指向下一个节点pre:指向上一个节点遍历方式和单链表一样按顺序添加节点:创建辅助节点temp指向表头,创建两一个节点temp2存放temp.next遍历链表,若temp.next=null,遍历到最后;temp.next.no>新节点.no,可以添加,并且退出循环;temp.next.no=新节点.no,表示已经存在添加节点,如果是temp.next=null情况,直接在后面添加;如果是temp.next.no>新节点.no
2020-06-14 22:24:31 151 1
原创 学习数据结构的第三天--链表(按编号顺序添加节点)
按编号的顺序添加节点:首先找到新添加节点的位置,通过辅助节点令temp=head遍历来搞定用一个while循环,当找到节点编号大于新节点的编号时退出循环,再把新节点加入进链表中新节点.next=temp.nexttemp.next=新节点//按照顺序加入节点 public void addByOrder(HeroNode heroNode) { //新建一个辅助节点,我们要找的temp是要加入的前一个节点 HeroNode temp=head; boolean flag=fal
2020-06-13 22:48:59 180
原创 学习数据结构的第三天--链表
链表:链表是以节点的方式来存储的每个节点包含data域,next域–指向下一个节点链表的每一个节点不一定是连续存储的链表分 带头节点的链表和没有头结点的链表head节点:头节点–不存放具体数据,作用表示单链表头创建链表思路:先创建一个head头结点,作用表示单链表的头每添加一个节点,就直接加入到链表的最后,因此,需要先遍历链表遍历链表—通过一个辅助节点temp来遍历整个链表class SingleLinkedList{ //初始化一个头结点 private Her
2020-06-13 22:42:37 114
原创 学习数据结构的第二天--用数组来模拟环形队列
今天,用数组来模拟环形队列(将数据取出队列之后能立马添加数据)。思路:首先,队列与数组一样,从0开始数定义一个整型front变量:指向队列的第一个元素,即arr[front]就是队列的第一个元素,front的初始值为0定义一个整型rear变量:指向队列的最后一个元素的后一个位置(例如:定义队列的最大容量maxSize为4,但是只能存储3个有效数据,还有一个位置留给rear来做一些约定),rear的初始值为0队列满时的条件为:(rear+1)%maxSizefront 队列空时的条件
2020-06-12 23:19:49 173
原创 学习数据结构的第一天----队列
线性结构与非线性结构:首先数据结构分为线性结构与非线性结构。线性结构(1):线性结构是最常用的数据结构(2):特点:元素之间存在一对一的线性关系(3):线性结构有两种不同的存储结构:顺序存储结构(比如:数组)–存储元素是连续的链式存储结构(称为链表)–存储元素不一定是连续的(4):线性结构常见的有:数组,队列,链表,栈非线性结构:二维数组,多维数组,树结构,图结构先说数据结构中的队列:队列:概念:队列是一个有序列表,可以用数组或者链表来实现遵循先进先出的原则 用数组
2020-06-11 16:32:47 97
原创 Xml解析---Jsoup的空指针异常
在运行Jsoup程序的过程中,出现空指针异常的情况,如下:这时候,我们应该把student.xml的路径放在src路径下:之后应该能运行成功student.xml代码如下:<?xml version="1.0" encoding="UTF-8"?><students> <student number="s001"> &...
2020-05-05 11:57:01 860 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人