Java数据结构和算法
「已注销」
脚踏实地!
展开
-
递归实现迷宫问题2(查找最短路径)-作业
代码 package com.atguitu.recursion; /** * * @author little_pine * 当前进度: 全部完成 * */ public class MiGongSearchShortestPath { public static void main(String[] args) { // 先创建一个二维数组, 模拟迷宫 // 地图 int[][] map = new int[8][7]; // 创建地图 setMap(map);原创 2021-04-25 12:22:47 · 428 阅读 · 0 评论 -
递归实现迷宫问题1 (不查找最短路径)-韩老师
代码 package com.atguigu.recursion; public class MiGong { public static void main(String[] args) { // 先创建一个二维数组, 模拟迷宫 // 地图 int[][] map = new int[8][7]; // 使用1 表示墙 // 上下全部置为1 for (int i = 0; i < 7; i++) { map[0][i] = 1; map[7][i] = 1;原创 2021-04-24 22:16:40 · 124 阅读 · 0 评论 -
逆波兰(后缀表达式)计算器(支持小括号)-作业
代码 package com.atguigu.stack; import java.util.ArrayList; import java.util.List; import java.util.Stack; import javax.management.RuntimeErrorException; public class PolandNotation { public static void main(String[] args) { //完成将中缀表达式转成后缀表达式的功能原创 2021-04-23 17:26:38 · 135 阅读 · 0 评论 -
中缀表达式计算器(仅支持加减乘除,不支持小括号)
思路以及代码 package com.atguigu.stack; //数的加减乘除,使用栈,中缀表达式,不包含小括号 public class Calculator { // 使用栈完成计算一个表达式的结果 // 使用栈完成表达式的计算思路 // 1. 通过一个index值(索引),来遍历我们的表达式 // 2. 如果我们发现是一个数字,就直接入数栈, // 3. 如果发现扫描到的是一个符号,就分如下情况 // 1. 如果当前的符号栈为空,就直接入栈 // 2. 如果符号栈有操作符,就进行原创 2021-04-21 23:08:36 · 170 阅读 · 0 评论 -
使用数组或者单链表实现栈及其基本操作
数组实现栈 package com.atguigu.stack; import java.util.Scanner; public class ArrayStackDemo { public static void main(String[] args) { //测试一下ArrayStack是否正确 //先创建一个ArrayStack对象->表示栈 ArrayStack stack = new ArrayStack(4); String key = ""; boolean原创 2021-04-21 17:34:22 · 209 阅读 · 0 评论 -
约瑟夫问题的代码实现(单向环形链表)
package com.atguigu.linkedlist; /** * 约瑟夫问题:设编号为 1, 2, ... n 的 n 个人围坐一圈,约定编号为k (1<=k<=n) 的人从1开始报数,数到m 的那个人出列,它的下一位又从1 开始报数,数到m 的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列 例子: n = 5,即有5 个人 k = 1,从第一个人开始报数 m = 2,数到2出圈 出圈的顺序:2->4->1->5->3 单向环形链表实原创 2021-04-14 22:06:47 · 105 阅读 · 0 评论 -
双链表的基本操作
双向链表基本操作 使用带head头节点的双向链表实现 - 水浒英雄排行榜 管理单项链表的的缺点分析: 1. 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找 2. 单项链表不能自我删除,需要靠辅助节点,而双向链表可以自我删除,所以前面我们单链表删除节点时总是找到temp,当时的temp是待删除节点的前一个节点,而双向链表中的temp,只是起一个定位作用 3. 分析了双向链表表如何完成遍历、添加、按编号顺序添加、修改、删除的思路 分析双向链表的遍历、添加、修改、删除的操作思路: 1. 遍原创 2021-04-14 11:57:12 · 104 阅读 · 0 评论 -
单链表的定义、操作和应用
单链表的定义、操作和应用-尚硅谷-韩老师课程和作业上代码和注解 上代码和注解 // An highlighted block /*三大板块 1.定义节点 2.定义单链表操作 1.创建单链表 2.遍历单链表 3.修改单链表节点的值 4.删除单链表节点 5.将添加的节点按顺序排列 3.实际应用 1.求单链表中有效节点的个数 2.查找单链表中的倒数第k个节点【新浪面试题】 3.单链表的反转【腾讯面试题】 思路: 1.先定义一个节原创 2021-04-12 12:07:36 · 328 阅读 · 0 评论