Skip to content

  • 栈是一种线性结构
  • 相比数组,栈对应的操作是数组的子集
  • 只能从一端添加元素,也只能从一端取出元素。这一端成为栈顶。

栈一般有如下方法:

typescript
interface Stack<T> {
  push(item: T): void
  pop(): T | undefined
  peek(): T | undefined
  isEmpty(): boolean
  getSize(): number
}

使用数组的方式实现栈

typescript
class ArrayStack<T> implements Stack<T> {
  #arr: T[] = []

  push(item: T): void {
    this.#arr.push(item)
  }

  pop(): T | undefined {
    return this.#arr.pop()
  }

  peek(): T | undefined {
    return this.#arr[this.#arr.length - 1]
  }

  isEmpty() {
    return this.#arr.length === 0
  }

  getSize() {
    return this.#arr.length
  }
}