由中缀式转换成后缀式,同样使用栈,并运用一些规则来完成。规则介绍如下:
当读到的是操作数,立即输出。当读到的是运算符,则先从栈中弹出优先级高于自己的运算符(不包含括号),自己入栈。读到左括号入栈,读到右括号则将栈中元素出栈并输出,直到遇见左括号(括号都不输出)。输入为空后,将栈元素弹出并输出直到栈空。
注意,最后生成的后缀表达式是考虑了运算符优先级的,再配合逆波兰的无优先级概念这一性质...
分类:
其他好文 时间:
2014-04-29 13:24:21
阅读次数:
375
逆波兰记法又称为后缀记法,把操作符放置于操作数后面,计算过程通常用栈来实现的,通过栈来保存中间结果,使得逆波兰记法没有必要知道任何优先规则。
方法描述:当见到一个数时就把它推入栈中;在遇到运算符时该运算符就作用于从该栈弹出的两个数上,将结果推入栈中。
下面演示计算后缀表达式的过程。
后缀表达式:6 5 2 3 + 8 * + 3 + *
四个数字入栈:6 5 2 3(→栈生...
分类:
其他好文 时间:
2014-04-29 13:14:21
阅读次数:
378
了解了数据结构--栈(基础知识)
下面简单整理了下有关栈的几个应用。
递归
把一个直接调用自己,或间接调用自己的函数,成为递归函数。
这里有一个比较好的例子,看下面一组数:
你是否发现了这组数的规律呢,没错你会发现从第三个数开始,每个数都是前面两个数的之合。
现在我们通过程序来实现这个算法,如下java代码:
public class Test {
private ...
分类:
其他好文 时间:
2014-04-27 22:37:30
阅读次数:
404