在JavaScript中是不存在栈这个数据结构的,但是我们可以通过数组来模拟栈。
1、基本实现
栈是一种“后进先后”的数据结构,数据在内存中是连续存储的,可以通过数组的 push 来模拟茹栈,pop 来模拟入栈。
// 栈 后进先出
const stack = [];// 入栈
stack.push(0); // 返回值为新数组的长度
console.log(stack);
stack.push(1);
console.log(stack);// 出栈
const pop1 = stack.pop(); // 返回值为出栈的元素
console.log(stack,pop1);
const pop2 = stack.pop();
console.log(stack,pop2);
2、前端与栈
在JavaScript中,函数调用就是用栈来进行的,可以看下面这段代码:
// 最后调用的最先执行const f1 = () =>{console.log(f1);f2()
}const f2 = () =>{console.log(f2);f3();
}const f3 = () =>{console.log(f3);
}f1()
3、算法题
- 十进制转换为二进制
- 20 有效的括号
- 144 二叉树的前序遍历