package a2;
import java.util.ArrayList;
import java.util.LinkedList;
public class MyStack<T>
{
//存储空间
//private LinkedList ll=new LinkedList();
private ArrayList ll=new ArrayList();
//出栈 弹栈
public <T> T pop()
{
//return ll.removeLast();
return (T) ll.remove(ll.size()-1);
}
//入栈 压栈
public void push(Object o)
{
//ll.addLast(o);
ll.add(o);
}
//查看栈顶
public <T> T peek()
{
//return ll.getLast();
return (T) ll.get(ll.size()-1);
}
//为空?
public boolean isEmpty()
{
return ll.isEmpty();
}
}
package a2;
public class Oparation
{
public static final Oparation ADD=new Oparation('+',0);
public static final Oparation DEC=new Oparation('-',0);
public static final Oparation RIDE=new Oparation('*',1);
public static final Oparation DIV=new Oparation('/',1);
public static final Oparation qy=new Oparation('%',1);
public static final Oparation lp=new Oparation('(',10);
public static final Oparation rp=new Oparation(')',-10);
//运算符类型
private char type;
//运算符优先级
private int pro;
public char getType()
{
return type;
}
public int getPro()
{
return pro;
}
private Oparation(char type, int pro)
{
super();
this.type = type;
this.pro = pro;
}
//运算方案
public double computting(double a,double b)
{
switch(this.type)
{
case '+':
{
return a+b;
}
case '-':
{
return a-b;
}
case '*':
{
return (a)*(b);
}
case '/':
{
return (a)/(b);
}
case '%':
{
return a%b;
}
default:
{
System.out.println("运算符有误");
System.exit(-1);
return 0;
}
}
}
}