- 博客(9)
- 收藏
- 关注
原创 回溯算法——八皇后问题
利用一维数组来保存八皇后的位置,默认每个皇后从不同行开始进行计算 步骤: 1、第一个皇后先放第一行第一列 2、第二个皇后放在第二行第一列、然后判断是否OK, 如果不OK,继续放在第二列、第三列、依次把所有列都放完,找到一个合适 3、继续第三个皇后,还是第一列、第二列……直到第8个皇后也能放在一个不冲突的位置,算是找到了一个正确解 4、当得到一个正确解时,在栈回退到上一个栈时,就会开始回溯,即将第一个皇后,放到第一列的所有正确解,全部得到. 5、然后回头继续第一个皇后放第二列, 后面继续循环执行 1.
2021-12-05 19:52:15
333
原创 回溯算法之简单迷宫
import org.junit.Test; public class MazeBacktracking { @Test public void text(){ MazeBacktracking m=new MazeBacktracking(); int[][] map=m.mazeCreat(); show(map); m.mazeBacktrack(map,1,1);//给定迷宫以及迷宫的初始进入点 S.
2021-12-05 19:42:29
98
原创 中缀表达式转后缀表达式和逆波兰运算(整数的加减乘除)
具体步骤如下: 初始化两个栈:运算符栈s1和储存中间结果的栈s2; 1、从左至右扫描中缀表达式; 2、遇到操作数时,将其压s2; 遇到运算符时,比较其与s1栈顶运算符的优先级: 如果s1为空,或栈顶运算符为左括号“(”,则直接将此运算符入栈; 否则,若优先级比栈顶运算符的高,也将运算符压入s1; 否则,将s1栈顶的运算符弹出并压入到s2中,再次转到(4-1)与s1中新的栈顶运 算符相比较; 遇到括号时: (1) 如果是左括号“(”,则直接压入s1 (2) 如果是右括号“)”,则依次弹出s..
2021-12-04 19:16:20
226
原创 栈的实现(整数的加减乘除)
import org.junit.Test; public class ArithmeticStack { @Test public void test() { String expression = "300+400*5+60/3-5"; ArrayStack numStack = new ArrayStack(10); ArrayStack operStack = new ArrayStack(10); int num1.
2021-12-03 20:00:55
352
原创 约瑟夫环的简单实现(小孩出圈问题)
import org.junit.Test; public class CircularLinkedlist { /* 约瑟夫问题 设编号为1,2,3。。。。坐一圈,约定编号为k的同学开始报数, 数到m的人出列,以此类推,直到所有人都出列 根据用户输入,生成一个小孩出圈的顺序; 1、需求创建一个辅助指针(变量)helper,事先应该指向环形链表 的最后一个结点; 2、当.
2021-12-03 19:56:44
792
原创 单链表的增删改查反转
import org.junit.Test; public class SingalLinkedlist { @Test public void test() { Node n1=new Node(1,"张三","男"); Node n2=new Node(2,"李四","男"); Node n3=new Node(3,"王五","女"); Node n4=new Node(4,"赵六","男"); Node.
2021-11-28 20:45:06
453
原创 环形队列的简单实现
public class Queue { // 队列的构造 maxSize该队列的最大容量,front和rear // rear=front时队列已满 // rear指向队列最后一个元素的后一个位置 // front指向队列的第一个元素 // 队列为满的条件(rear+1)%maxSize=front private int maxSize; private int front; private int rear; private int[].
2021-11-28 20:41:22
328
原创 二维数组转换稀疏数组并保存
public class Arraytrans { // 普通数组转换为稀疏数组; public int[][] SparshArray(int[][] arr){ int count=0; for (int[] rows:arr){ for (int i:rows){ if (i!=0){ count++; } .
2021-11-28 20:39:04
73
原创 Arraylist set和map(学习笔记整理记录)
属于collection接口 Collection –List:将以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。 –ArrayList / LinkedList / Vector –Set : 不能含有重复的元素 –HashSet / TreeSet 1、能够知道确定对象数目时用arraylist,初始容量16,当容量不够则抛弃原数组,*2copy新数组; 与arraylist 对应的有linkedlist(需要频繁增删改查时使用),vector(逊于arraylist,一般不用),具体底层
2021-10-10 15:44:50
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人