【数据结构与算法 6】栈实现综合计算器

top++;

stack[top] = value;

}

//出栈-pop, 将栈顶的数据返回

public int pop() {

//先判断栈是否空

if(isEmpty()) {

//抛出异常

throw new RuntimeException(“栈空,没有数据~”);

}

int value = stack[top];

top–;

return value;

}

//显示栈的情况[遍历栈], 遍历时,需要从栈顶开始显示数据

public void list() {

if(isEmpty()) {

System.out.println(“栈空,没有数据~~”);

return;

}

//需要从栈顶开始显示数据

for(int i = top; i >= 0 ; i–) {

System.out.printf(“stack[%d]=%d\n”, i, stack[i]);

}

}

//返回运算符的优先级,优先级是程序员来确定, 优先级使用数字表示

//数字越大,则优先级就越高.

public int priority(int oper) {

if(oper == ‘*’ || oper == ‘/’){

return 1;

} else if (oper == ‘+’ || oper == ‘-’) {

return 0;

} else {

return -1; // 假定目前的表达式只有 +, - , * , /

}

}

//判断是不是一个运算符

public boolean isOper(char val) {

return val == ‘+’ || val == ‘-’ || val == ‘*’ || val == ‘/’;

}

//计算方法

public int cal(int num1, int num2, int oper) {

int res = 0; // res 用于存放计算的结果

switch (oper) {

case ‘+’:

res = num1 + num2;

break;

case ‘-’:

res =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值