[js算法]栈的实现

跟队列的实现大致是一样的

队列实现: js实现队列

  • 主要元素有属性与方法: 空, 满, 增, 删, (查)展示
  • 实例: 一个计算式的实现
    在这里插入图片描述

可以分为三种表达式: (3+4)*5-6

  1. 前缀表达式: - * + 3 4 5 6

在这里插入图片描述

  1. 中缀表达式:正常表达式
  2. 后缀表达式:3 4 + 5 * 6 -

在这里插入图片描述

//栈的实现,
// 使用arr模拟

class Stack{
    constructor(maxSize){
        this.maxSize=maxSize
        this.arr=Array(maxSize)
        this.top=0
    }
    //判断是否为空
    isEmpty(){
        return this.top==0
    }
    // 判断是否满了
    isFull(){
        return this.top==this.maxSize
    }
    //压栈
    pushStack(num){
        if(this.isFull()){return}
        else{
            this.arr[this.top]=num;
            this.top++
        }
    }
    //取栈
    getStack(){
        if(this.isEmpty()){return}
        else{
            let temp=this.arr[this.top-1]
            this.top--;
            return temp
        }
    }
    //展示
    showStack(){
        if(this.isEmpty())return;
        for (let i = 0; i <this.top; i++) {
         console.log(`this.arr[${i}]=${this.arr[i]}`);  
        }
    }

}
let st=new Stack(5)
st.pushStack(1)
st.pushStack(2)
st.pushStack(3)

st.getStack()
st.pushStack(4)
st.pushStack(5)

st.showStack()
console.log(st.arr);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值