数据结构学习栈篇
we1less
学习
展开
-
[数据结构]递归-解决八皇后问题
八皇后问题介绍:这是一段百度百科关于八皇后问题的介绍。此图来源于百度百科哈~~~简单的来说就是有一个8*8的棋盘,需要将8颗代表皇后的棋子有规则地摆上。规则是任意两个皇后不能处在同一行,同一列或者同一斜线上,列出所有不同的解法。解题思路:1.第一个皇后放在第一排第一列。2.第二个皇后放在第二行第一列,然后判断是否ok,如果不ok,继续放在第二列,第三列,依次把所有列都放完,直到找到一个合适的点。3.继续第三个皇后,依旧按照第二点的原则,指导第八个皇后也存在一个不冲突的...原创 2020-05-19 23:28:58 · 443 阅读 · 0 评论 -
[数据结构]递归-迷宫回溯问题
利用递归来解决迷宫问题。问题描述:有一个由二维数组组成得矩阵,希望从左上角走到左下角,提供一个可行得路线,假设数字1代表墙解题思路:首先利用二维数组将此地图模拟出来,// 利用二位数组模拟一个地图 int[][] map = new int[8][7]; for (int i = 0; i < 8; i++) { map[i][0] = 1; map[i][6] = 1; } for (int i = 0; i < 7; i++) { map[原创 2020-05-18 21:19:12 · 355 阅读 · 0 评论 -
[数据结构]中缀表达式转后缀表达式
话不多说上例子:1+((2+3)*4)-5 => 1 2 3 + 4 * + 5 -中缀表达式转后缀表达式思路分析:1.首先需要两个栈 运算符栈 s1和存储中间结果的栈 s22.从左至右扫描中缀表达式2.1当前为操作数,将其压栈至S22.2当前为运算符 2.2.1如果S1为空或者栈顶运算符为左括号“(”则将此运算符直接入S1栈 2.2.2当前为运算符“(”左括号时,则直接压入S1 2.2.3当前为...原创 2020-05-17 22:52:12 · 749 阅读 · 0 评论 -
[数据结构]逆波兰计算器分析和实现
逆波兰计算器主要用来解决后缀表达式的运算,一般使用栈结构来进行运算。例:有一个后缀表达式(3+4)*5-6=29 =>"3 4 + 5 * 6 -"首先需要利用一个list结构将表达式存储起来。这里就需要一个转换方法:// 将字符串转换成list public static List<String> getListString(String suffixExpression) { String[] split = suffixExpression.split(" ").原创 2020-05-16 18:46:31 · 254 阅读 · 0 评论 -
[数据结构]栈实现综合计算器解决中缀表达式
实现利用栈结构实现计算器功能分析:首先我们需要一个字符串类型的中缀表达式:"32250+25*6-265"为了实现计算功能我们需要两个栈结构:一个用来存储数字,为数栈,另一个用来存储运算符号,为符号栈(这里因为讨论的是中缀表达式所以暂未考虑小括号等问题)。1.通过一个index(索引),来遍历我们的表达式。2.如果发现是数字,则直接入数栈。3.如果发现是符号则分为一下两种情况3.1当前符号栈为空,直接入栈。3.2如果符号栈有操作符则进行比较,如果当前的操作符优先级小于或者等于(&原创 2020-05-15 19:38:28 · 223 阅读 · 0 评论