本文最后更新于1 年前,文中所描述的信息可能已发生改变。
stack
● 结尾删除和添加
● 后入先出
封装
- #item表示是当前类的私有属性。
ts
// push 一个元素到栈顶
// pop 出栈
// peek 返回栈顶
// isEmpty()
// clear()
// size()
// toString()
class Stack {
#items = []
pop() {
return this.#items.pop()
}
push(data){
this.#items.push(data)
}
peek(){
return this.#items.at(-1)
}
size(){
return this.#items.length
}
isEmpty(){
if(this.size() === 0) return true
return false
}
clear(){
return this.#items = []
}
toString() {
return this.#items.join(',')
}
}
let stack = new Stack()
栈的使用
ts
function convert(decNumber,convertNum){
let stack = new Stack()
let number = decNumber
let string = '' // 要输出的string
while(number>0){
stack.push(number%convertNum) // 余数推入栈
number = Math.floor(number/convertNum) // 商进行下一次循环
}
while(!stack.isEmpty()){
string+=stack.pop()
}
}
convert(50,2) // 将一个数字转化成2进制