目的
1. 使用栈将中缀表达式转换成后缀表达式
2. 使用后缀表达式求算术值
注意:
因为是简单实践,所以代码逻辑已经简化,比如只能对个位数的加减乘除进行解析、没有设异常处理等
一:需要实现一个栈
这个没什么好说的,只是一个结构很简单的栈
1 public class Stack { 2 3 private int maxSize; 4 private int top; 5 private Object[] stackArr; 6 7 public Stack(int maxSize) { 8 this.maxSize = maxSize; 9 stackArr = new Object[maxSize]; 10 top = -1; 11 } 12 13 public void push(Object i){ 14 stackArr[++top] = i; 15 } 16 17 public Object pop(){ 18 return stackArr[top--]; 19 } 20 21 public Object peek(){ 22 return stackArr[top]; 23 } 24 25 public Object peekN(int n) { 26 return stackArr[n]; 27 } 28 29 public boolean isEmpty(){ 30 return (top == -1); 31 } 32 33 public boolean isFull(){ 34 return (top == maxSize-1); 35 } 36 37 public int size(){ 38 return top+1; 39 } 40 41 public void dispaly(String s) { 42 System.out.print(s + "\t\t" + "Stack {bottom-->top}: "); 43 for (int i = 0; i < size(); i++) { 44 System.out.print(peekN(i) + "\t"); 45 } 46 System.out.println(); 47 } 48 }