js算法速成

计算机比较笨会用左边方法来解题

 

 

 

栈先进后出比如浏览记录等都用到栈

class Stack{
    items=[]
    pop(){
        return this.items.pop();
    }
    push(data){
        this.items.push(data);
    }
    peek(){//栈顶元素
        return this.items[this.items.length-1]
    }
    isEmpty(){
        returnthis.items.length===0
    }
    size(){
        return this.items.length
    }
    clear(){
        this.items=[]
    }
    toString(){
        return this.items.join(" ")
    }
}
let stack=new Stack()

 属性和方法私有化就在所有items前加#号

栈实现convert()辗转相除法转2-16进制

 

 

class Queue{
    #items={}
    #lowCount=0
    #count=0
    dequeue(){
        if (this.isEmpty()){
            return undefined
        }
        let res=this.#items[this.#lowCount]
        delete this.#items[this.#lowCount]
        this.#lowCount++
        return res
    }
    enqueue(data){
        this.#items[this.#count]=data
        this.#count++
    }
    front(){//队头
        return this.#items[this.#lowCount]
    }
    isEmpty(){
        return this.size()===0
    }
    size(){
        return this.#count-this.#lowCount
    }
    clear(){
        this.#items={}
        this.#count=0
        this.#lowCount=0
    }
    toString(){
        let str=""
        for(let i=this.#lowCount;i<this.#count;i++){
            str+=`${this.#items[i]} `
    }
    return str
}
}
let queue=new Queue()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值