- 栈是一种线性结构,遵从后进先出(LIFO)原则的有序集合。
- 新增或待删除的元素都保存在栈的同一端,
- 只能从一端添加元素,也只能从一端取出元素。这一端成为栈顶。
栈一般有如下方法:
interface Stack<T> {
push(item: T): void;
pop(): T | undefined;
peek(): T | undefined;
isEmpty(): boolean;
getSize(): number;
}
使用数组实现栈
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;
}
}