随笔分类 -  数据结构与算法(Java)

回溯法解决迷宫求解问题
摘要:一、迷宫求解问题 如下图小球在起点(1,1)需要移动到终点(6,5),求能否顺利到达终点,若能,路径是什么。 下图即为采用 下 右 上 左的策略得出的结果。 二、解决思路 用二维数组map存放小地图,其中, 如果元素为0,则为未走过的空闲节点 如果元素为1,则表示为墙 如果元素为2,表示可以走 如果 阅读全文
posted @ 2020-05-12 16:36 风和日暖 阅读(405) 评论(1) 推荐(1)
回溯法解决八皇后问题
摘要:一、八皇后问题简介 ​ 八皇后问题 ,一个古老而著名的问题,是回溯算法的典型案例。该问题由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有 76 种方案。1854 阅读全文
posted @ 2020-05-12 16:01 风和日暖 阅读(595) 评论(0) 推荐(0)
中缀表达式转为后缀表达式(逆波兰式)求值
摘要:一、中缀与后缀表达式的介绍 1.中缀表达式 ​ 中缀表达式是一个通用的算术或逻辑公式表示方法。中缀表达式(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于 "操作数" 的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。 ​ 与 "前缀表达式" (例:+ 3 4)或 阅读全文
posted @ 2020-05-12 12:08 风和日暖 阅读(1385) 评论(0) 推荐(0)
中缀表达式求值的思路分析与代码实现
摘要:一、问题与解决办法 1.问题 ​ 输入一个任意给定的合理包含四则运算的表达式字符串,求解出其结果; ​ 例如:1)“ 7\ 2\ 2 5+1 5+3 4 ” ​ 求解出结果为:18 2.思路 1. 设置两个栈,一个数字栈numStack,用于存储表达式中涉及到的数字,operatorStack用于存 阅读全文
posted @ 2020-05-11 22:51 风和日暖 阅读(557) 评论(0) 推荐(0)
数据结构之栈(stack)的实现
摘要:一、栈 1.定义 1. 栈的英文为(stack),是一种数据结构 2. 栈是一个 先入后出 (FILO First In Last Out)的有序列表。 3. 栈(stack)是限制线性表中元素的插入和删除 只能在线性表的同一端 进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为 栈顶 阅读全文
posted @ 2020-05-11 19:48 风和日暖 阅读(398) 评论(0) 推荐(0)
单向环形链表解决约瑟夫环(Josephus)问题
摘要:一、约瑟夫环问题 Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1nums){ System.out.println("参数输入有误"); return; } //创建辅助指针helper即要出圈小孩的前一个节点 Boy helper = first; while ( 阅读全文
posted @ 2020-05-11 13:39 风和日暖 阅读(429) 评论(0) 推荐(0)