栈的应用:通过用户输入后缀表达式,利用数据结构栈计算其结果值。
来源:互联网 发布:数据恢复 编辑:程序博客网 时间:2024/05/01 17:36
package none004解析计算表达式栈;//通过用户输入后缀表达式,利用数据结构栈计算其结果值。import java.io.*;import java.util.*;public class PostfixApp {/** * @param args */public static void main(String[] args) throws IOException{// TODO Auto-generated method stubString input;int output;while(true){System.out.print("Enter postfix: ");System.out.flush();input=getString();if(input.equals(""))break;ParsePost pp=new ParsePost(input);output=pp.doParse();System.out.println("Evaluates to "+output);}}public static String getString() throws IOException{InputStreamReader isr=new InputStreamReader(System.in);BufferedReader br=new BufferedReader(isr);String s=br.readLine();return s;}}class ParsePost{private StackX theStack;private String input;public ParsePost(String s){input=s;}public int doParse(){theStack=new StackX(20);char ch;int j;int num1,num2,interAns;for(j=0;j<input.length();j++){ch=input.charAt(j);theStack.displayStack(""+ch+" ");if(ch>='0'&&ch<='9')theStack.push((int)(ch-'0'));else {num2=theStack.pop();num1=theStack.pop();switch(ch){case '+':interAns=num1+num2;break;case '-':interAns=num1-num2;break;case '*':interAns=num1*num2;break;case '/':interAns=num1/num2;break;default:interAns=0;}theStack.push(interAns);}}interAns=theStack.pop();return interAns;}}class StackX{int items;int[] arrayStack;int s;StackX(int max){s=max;arrayStack=new int[s];items=-1;}public void push(int value){if(items==s-1) System.out.println("栈已经等于最大值了。");else arrayStack[++items]=value;}public int pop(){return arrayStack[items--];}public boolean isEmpty(){return items==-1;}public int peek(){if(items==-1) return 0;else return arrayStack[items];}public boolean isFull(){return items==s-1;}public int size(){return items+1;}public void displayStack(String s){System.out.print(s);System.out.print("Stack(bottom-->top: ");for(int j=0;j<size();j++){System.out.print(peek());System.out.print(' ');}System.out.println("");}}
0 0
- 栈的应用:通过用户输入后缀表达式,利用数据结构栈计算其结果值。
- 大话数据结构——栈的应用四则元算表达式求值(后缀表达式计算结果)
- 数据结构::如何计算后缀表达式--栈的一个小应用
- 数据结构-栈应用(中缀转后缀并计算结果)
- 【数据结构_栈_Stack_1043】利用栈完成后缀表达式计算
- 栈应用 - 后缀表达式的计算
- 后缀表达式计算-栈的应用
- 栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)
- 数据结构之简单表达式计算器(读入中缀转后缀,通过后缀计算结果)
- 栈的应用--算术表达式的求值(中缀转后缀然后计算后缀表达式的值)
- 计算后缀表达式的值(栈应用二)
- C++数据结构与STL--栈的应用--后缀表达式的计算
- 《数据结构实战》中缀表达式转后缀表达式----栈的应用
- 《java数据结构与算法》笔记-CH4-8栈结构实现后缀表达式计算结果
- 输入一个字符串表达式,输出计算结果(队列、栈的应用)
- 数据结构栈之计算后缀表达式
- 数据结构-栈-计算后缀表达式
- 【数据结构】用栈实现对后缀表达式的计算
- 从光大银行看港股通:也许你会亏得更惨
- 2014-04-12腾讯实习生笔试题目及解析
- POJ 2361 Tic Tac Toe 模拟
- Oracle 10g RAC的负载均衡配置
- GDCPC2009--H(线段树)
- 栈的应用:通过用户输入后缀表达式,利用数据结构栈计算其结果值。
- VC++6.0如何设置使其支持Unicode编程
- window常用命令
- 春季踏青游 当心桃花廯
- IMS Bench SIPp 中文翻译
- The 11th Zhejiang Provincial Collegiate Programming Contest--- What day is that da
- 最大和连续子序列的变形
- 位图索引
- 链表,可以进行首尾添加元素,删除