前端手写代码面试题
目录

编写一个函数,实现一个简单的栈 (Stack)

· 约 3 分钟读完 · 第 109 / 125 章

推荐答案

本题详细解读

栈的基本概念

栈(Stack)是一种遵循“后进先出”(LIFO, Last In First Out)原则的数据结构。栈的操作主要包括:

  • push:将元素压入栈顶。
  • pop:移除并返回栈顶元素。
  • peek:返回栈顶元素但不移除。
  • isEmpty:判断栈是否为空。
  • size:返回栈中元素的数量。
  • clear:清空栈。

代码实现

在JavaScript中,我们可以使用数组来模拟栈的行为。数组的push和pop方法正好对应栈的入栈和出栈操作。

  • push(element):将元素添加到数组的末尾,模拟入栈操作。
  • pop():移除并返回数组的最后一个元素,模拟出栈操作。如果栈为空,则返回提示信息。
  • peek():返回数组的最后一个元素,但不移除它。如果栈为空,则返回提示信息。
  • isEmpty():检查数组的长度是否为0,判断栈是否为空。
  • size():返回数组的长度,表示栈中元素的数量。
  • clear():将数组重置为空数组,清空栈。
  • print():打印栈中的元素,方便调试和查看栈的内容。

使用示例

通过创建一个Stack实例,我们可以进行各种栈操作。示例代码展示了如何将元素压入栈、弹出栈顶元素、查看栈顶元素、获取栈的大小以及清空栈等操作。

注意事项

  • 在实际应用中,栈的大小可能会受到内存限制,因此在处理大量数据时需要注意栈的容量。
  • 栈的应用场景包括函数调用栈、表达式求值、括号匹配等。