计算机比较笨会用左边方法来解题
栈先进后出比如浏览记录等都用到栈
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()