一、思路
求解10以内的整数的四则运算表达式,主要是利用栈进行计算,需要用两个栈,数字栈和符号栈,用数组存放表达式,用两个栈分别遍历数字和符号,利用符号优先关系,判断当前符号是应该入栈还是出栈进行运算。
二、代码
//栈描述
class SeqStack<T>{
// 存储栈的元素的数组
private T[] stack;
// top表示栈顶的位置
private int top;
public SeqStack(){
this(10);
}
public SeqStack(int size){
this.stack = (T[])new Object[size];
this.top = 0;
}
public void push(T val){
if(full()){
// 栈如果满了,要进行内存2倍扩容
this.stack = Arrays.copyOf(this.stack,
this.stack.length*2);
}
this.stack[this.top] = val;
this.top++;
}
public void pop(){
if(empty())
return;
this.top--;
if(this.top < this.stack.length/2){
this.stack = Arrays.copyOf(this.stack, this.stack.length/2);
}
}
public T to