3-7 思考题 请老师斧正
来源:3-7 【勤于思考,夯实学习成果】阶段思考题

less_is_better
2021-06-06
// 1.请用 ES6 的 class,封装一个 Stack 类,包括 push、pop、peek 方法。
class Stack {
constructor () {
this.stack = []
}
push (item) {
this.stack = [...this.stack, item]
return this.stack
}
pop () {
if(!this.stack.length) {return undefined}
const res = this.stack[this.stack.length-1]
this.length.length -= 1
return res
}
peek () {
if(!this.stack.length) {return undefined}
return this.stack[this.stack.length-1]
}
}
// 2.请用栈这个数据结构,将 100 这个十进制数字转为二进制
const bin = (num) => {
const stack = []
const res = []
while (num > 0) {
stack.push(num % 2)
num = Math.floor(num / 2)
}
const len = stack.length
// 注意不能写成 for (let i = 0; i < stack.length; i +=1) ,在循环中随着 stack.pop() 的执行,stack.length 的值会不断变化。
for (let i = 0; i < len; i +=1) {
res.push(stack.pop())
}
// 或可写成:
// for (let i = stack.length-1; i > -1; i -=1) {
// res.push(stack[i])
// }
return res
}
写回答
1回答
-
lewis
2021-06-06
pop不用那么麻烦,直接调用array的pop即可
012021-06-06
相似问题