算法训练 前缀表达式

该博客介绍如何设计并实现一个程序,用于计算前缀表达式的值。程序通过逆序扫描表达式,遇到数字时将其压入栈,遇到运算符则弹出栈顶元素进行运算。文章提供了具体的思路和程序实现方法,包括将输入字符串分隔存储、创建栈类以及遍历数组进行计算,最终结果存储在栈顶。
摘要由CSDN通过智能技术生成

问题描述

编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。
  输入格式:输入只有一行,即一个前缀表达式字符串。
  输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。

样例输入

+ 5 2

样例输出

7

思路

  • 前缀表达式求值方法:
    1.逆序扫描前缀表达式
    2.扫描到数字就压入栈中
    3.扫描到运算符就弹出栈顶的两个元素运算后将结果入栈
    4.循环直到表达式扫描完毕
    • 程序实现方法:
      1.将输入的前缀表达式以字符串形式保存
      2.因为有两位运算数,所以将字符串以空格分隔开存入数组
      3.创建一个栈类存放操作数
      4.逆序遍历数组,遇到数字就压入栈
      5.遇到运算符就对栈顶的两个元素进行出栈操作并将结果入栈
      6.当数组遍历完毕后栈顶元素即为结果

代码

import java.util.Scanner;
import java.util.Stack;
public class Prefix {
   
	public static void main(String[] args) {
   
		Scanner input = new Scanner(System.in);
		String prefix = input.nextLine(); 
		System.out.println(result(stringToArray
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值