“手撕栈“之“手撕逆波兰计数器”,面试前过自己手撕一遍

目录

手撕栈+普通计数器(中缀求解) 

栈应用之逆波兰计数器(后缀)


 

手撕栈+普通计数器(中缀求解) 

package com.Cx_330.run;

public class StackKKK {
    public int top=-1;
    public int maxSize;
    public int[] stK;
    public StackKKK(int maxSize){
        this.maxSize=maxSize;
        this.stK=new int[maxSize];
    }
    //判断是否为空
    public boolean isEmpty(){
        return top==-1;
    }
    //判断是否满
    public boolean isFull(){
        return top==maxSize-1;
    }
    //添加元素
    public void add(int num){
        if(this.isFull()){
            System.out.println("元素满了");
        }
        top++;
        stK[top]=num;
    }
    //取出栈顶元素并返回
    public int getTop(){
        int val=stK[top];
        top--;
        return val;
    }
    //判断是否为操作符
    public boolean isOper(char ch){
        return ch=='+'||ch=='-'||ch=='*'||ch=='/';
    }
    //返回优先级
    public int priority(char ch){
        if(ch=='*'||ch=='/'){
            return 1;
        }else if (ch=='

你可能感兴趣的:(Java面试题,数据结构算法,大数据)