GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Java/Others/StackPostfixNotation.java at master · feiteng/Java Expand file tree/ Copy pathStackPostfixNotation.javaMore file actions 40 lines (34 loc) · 1.28 KB / Copy pathStackPostfixNotation.javaFile metadata and controls40 lines (34 loc) · 1.28 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 package Others; import java.util.*; public class StackPostfixNotation { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String post = scanner.nextLine(); // Takes input with spaces in between eg. "1 21 +" System.out.println(postfixEvaluate(post)); } // Evaluates the given postfix expression string and returns the result. public static int postfixEvaluate(String exp) { Stack<Integer> s = new Stack<Integer>(); Scanner tokens = new Scanner(exp); while (tokens.hasNext()) { if (tokens.hasNextInt()) { s.push(tokens.nextInt()); // If int then push to stack } else { // else pop top two values and perform the operation int num2 = s.pop(); int num1 = s.pop(); String op = tokens.next(); if (op.equals("+")) { s.push(num1 + num2); } else if (op.equals("-")) { s.push(num1 - num2); } else if (op.equals("*")) { s.push(num1 * num2); } else { s.push(num1 / num2); } // "+", "-", "*", "/" } } return s.pop(); } } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |