Heim  >  Artikel  >  Java  >  Beispiel für die Implementierung eines umgekehrten polnischen Ausdrucks in Java

Beispiel für die Implementierung eines umgekehrten polnischen Ausdrucks in Java

黄舟
黄舟Original
2017-10-18 10:12:191589Durchsuche

In diesem Artikel wird hauptsächlich der relevante Inhalt des umgekehrten polnischen Ausdrucks vorgestellt. Die Definition des umgekehrten polnischen Ausdrucks hat einen bestimmten Referenzwert.

Umgekehrter polnischer Ausdruck

Definition: Die traditionellen vier arithmetischen Operationen werden Infix-Ausdrücke genannt, das heißt, der Operator liegt zwischen den beiden Operanden von. Umgekehrte polnische Ausdrücke werden Postfix-Ausdrücke genannt und der Ausdruck steht nach dem Operanden.

Umgekehrter polnischer Ausdruck:

a+b ---> a,b,+
a+(b-c) ---> ,c,-,+
a+(b-c)*d ---> a,b,c,-,d,*,+
a+d*(b-c)--->a , d,b,c,-,*,+
a=1+3 ---> a=1,3 +

http=(smtp+http+telnet)/ Was wird als 1024 geschrieben?
http=smtp,http,+,telnet,+,1024,/

Verwenden Sie Java, um den umgekehrten polnischen Ausdruck zu implementieren


/**
 * 计算算数表达式的值
 * For example:
 * ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
 * ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
 * @author zl
 * 思路:
 * 这个问题可以通过使用堆栈来解决。
 * (1)我们可以循环遍历给定数组中的每个元素。
 * (2)当它是一个数字,把它推到堆栈。
 * (3) 当它是一个操作符时,从堆栈中弹出两个数字,进行计算,并推回结果。
 *
 */
public class EvaluateValueOfArithmeticExpression {
  private static void evoe(String[] strArr){
    String str = "+-*/";
    Stack<String> stack = new Stack<String>();
    //2.0遍历数组中的每一个元素
    for(String s : strArr){
      if(!str.contains(s)){//如果是数字,放入栈中
        stack.push(s);
      }else{
        int a = Integer.valueOf(stack.pop());
        int b = Integer.valueOf(stack.pop());
        switch(s){
        case "+" :
          stack.push(String.valueOf(a+b));
          break;
        case "-" :
          stack.push(String.valueOf(b-a));
          break ;
        case "*" :
          stack.push(String.valueOf(a*b));
          break;
        case "/" :
          stack.push(String.valueOf(b/a));
          break ;
        }
      }
    }
    System.out.println(stack.pop());
  }
  public static void main(String[] args) {
    //1.0创建数组
    String [] strArr = { "0", "2", "-", "3", "+" };
    evoe(strArr);
  }

Zusammenfassung

Das obige ist der detaillierte Inhalt vonBeispiel für die Implementierung eines umgekehrten polnischen Ausdrucks in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn