栈的操作(压栈,获取栈顶元素,获取栈长度,判断栈是否为空)
class StackArr {
stack = [];
// 往栈推数据
push(item='') {
this.stack.push(item);
}
// 获取栈顶元素 把这个元素拿出来
pop() {
return this.stack.pop();
}
// 查看栈顶元素
peek() {
const len = this.stack.length;
return this.stack[len - 1];
}
// 判断栈是否为空
isEmpty() {
return this.stack.length === 0;
}
// 栈的长度
size() {
return this.stack.length;
}
toString(symbol=' ') {
let result = "";
for (let i = 0, len = this.stack.length; i < len; i++) {
result = this.stack[i] + symbol;
}
return result;
}
}
利用栈实现十进制转化二进制
const tenToTwo = (num) => {
let stack = new StackArr(),
result = "";
while (num > 0) {
stack.push(num % 2);
// 向下取整
num = Math.floor(num / 2);
}
while (!stack.isEmpty()) {
result += stack.pop();
}
return result;
};