栈实现计算器
如有错误欢迎指正!
一、链表实现栈
代码如下(示例):
class stack<T>{
private singlelinked<T> singlelinked = new singlelinked<>();
private int top = -1;
public stack() {
}
//判断栈是否为空
public boolean isNull(){
return singlelinked.isNull();
}
//入栈push
public void push(T value){
top++;
Node<T> node = new Node<>(top, value);
singlelinked.add(node);
}
//出栈pop
public T pop(){
T value = singlelinked.del();
return value;
}
//遍历栈
public void list(){
singlelinked.list();
}
/**
* 判断当前字符是不是运算符
* @param c1 字符
* @return true:是 false:否
*/
public boolean isoperator(char c1) {
return c1 == '+' || c1 == '-' || c1 == '*' || c1 == '/';
}
/**
* 获取栈顶的值
* @return 栈顶值
*/
public T peek() {
T value = singlelinked.endvalue();
return value;
}
public int operpriority(char ch) {
if(ch == '*' || ch == '/'){
return 1;
}else if(ch == '+' || ch == '-'){
return 0;
}else{
return -1;
}
}
public int cal(int num1,int num2,char oper) {
int res = 0;
switch(oper){
case '+':
res = num1+num2;</