目的

  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 }
View Code

相关文章: