算法思想数据结构的书上都有,网上也能搜到,只是贴一个示例代码
package info.lwjlaser.tree;
import java.util.Stack;
public class Postfix {
public static void main(String [] args)
{
String expression = "(a+b)*(a-b)";
// String expression = "a+b*c+(d*e+f)*g";
deal(expression);
}
private static void deal(String ex)
{
Stack<Character> st = new Stack<Character>();
char [] temps = ex.toCharArray();
for(char temp : temps)
{
switch (temp)
{
case '+' :
case '-' :
while (!st.isEmpty() && st.peek()!='(')
{
System.out.print(st.pop());
}
st.push(temp);
break;
case '*' :
case '/' :
while (!st.isEmpty() && (st.peek() == '*' || st.peek() == '/'))
{
System.out.print(st.pop());
}
st.push(temp);
break;
case ')' :
while (st.peek() != '(')
{
System.out.print(st.pop());
}
st.pop();
break;
case '(' :
st.push('(');
break;
default :
System.out.print(temp);
}
}
while(!st.isEmpty())
{
System.out.print(st.pop());
}
}
}
分享到:
相关推荐
java中缀表达式转后缀表达式并计算结果(可以处理多位数
本项目的目标是实现一个C++程序,它能够接收用户输入的中缀表达式,将其转换为后缀表达式,并计算出结果。这个过程涉及到以下几个关键知识点: 1. **优先级与结合性**:运算符有不同的优先级和结合性,例如乘法和除...
c语言实现中缀表达式转后缀表达式并求得计算结果,用顺序栈结构。 当输入者输入错误信息的时候需要报错,并说明错误的种类。
### Java 实现中缀表达式转换为后缀表达式及计算 #### 概述 在计算机科学中,表达式的表示形式通常有三种:前缀、中缀和后缀。其中,中缀表达式是我们日常书写数学表达式时最常见的形式,如`2 + 3 * 4`。然而,在...
编译系统对中缀表达式的处理方法是先把它转换为后后缀表达式.在后缀表达式中,运算符位于两个操作数的后面,并且没有括号,其运算符的次序就是其执行运算的次序。后缀表达式计算过程的规则非常简单:从左到右依次扫描,...
在计算机科学中,数据...总结来说,中缀表达式转后缀表达式是数据结构和算法中的一个经典问题,主要利用堆栈数据结构和运算符优先级规则。在C++中实现这一转换,可以提高计算效率,便于计算机解析和执行数学表达式。
利用C语言实现中缀表达式转化为后缀表达式!!利用栈。
一个简单的算法,利用栈实现中缀表达式与后缀表达式的转换
4. 中缀转后缀:使用栈来实现中缀表达式到后缀表达式的转换。 5. 表达式求值:根据后缀表达式,使用栈进行计算。 6. 输出结果:显示转换后的后缀表达式和计算后的值。 具体实现细节如下: 1. 定义结构体 `struct ...
/*程序由本人编译,并且经过多次测试,正确无误!目前该转换算法只支持数字在0至9之间的+-*/四元运算转换.*/ /**************程序员信息 ***************东北大学*******************东大很厉害**************** ...
### C语言实现中缀表达式向后缀表达式转换 #### 概述 在计算机科学领域,表达式的处理是一项基础而重要的任务。表达式通常有三种形式:前缀(波兰)、中缀(标准数学表达式)和后缀(逆波兰)。本篇文章将详细探讨...
用户输入中缀表达式,程序输出后缀表达式并输出计算结果
Java中缀表达式求值 Java中缀表达式求值是一种常见的计算机算法,用于评估中缀表达式的值。中缀表达式是一种常见的数学表达式形式,但是在计算机中难以直接计算,因为它的运算符优先级和结合性规则使得计算变得复杂...
总结来说,中缀表达式转后缀表达式是编译原理中的基本操作,它涉及到了栈数据结构、运算符优先级以及表达式树的构建。通过这种方法,我们可以更高效地计算和解析数学表达式,这对于计算机程序设计,尤其是编译器和...
通过中缀表达式转后缀表达式,我们可以很容易地构建这棵树,因为后缀表达式的顺序就是操作符对操作数的计算顺序。 在实现这个算法时,通常会使用一个数据结构,如二叉树或者链表,来存储表达式树。在控制台中画出...
中缀表达式转换为后缀表达式_C++程序设计 中缀表达式转换为后缀表达式是一个常见的数据结构和算法问题。中缀表达式是一种常见的数学表达式表示形式,例如:a \* (x + y) / (b - x),而后缀表达式是将运算符移到它的...
总之,中缀表达式转后缀表达式以及后缀表达式求值是计算机科学中的基础概念,它们在编译原理、解释器设计、计算器程序等领域都有广泛应用。理解和掌握这些知识,对于深入理解计算机处理逻辑和提高编程能力都至关重要...
在本项目中,“java堆栈的应用--中缀表达式转换成后缀表达式和计算”具体涉及到了两个主要知识点:中缀表达式的转换与后缀表达式的计算。 1. **中缀表达式**:这是我们常见的数学表达式形式,如 `2 + 3 * 4`,其中...