概念及特点
概念
栈也是数据结构的一种,结构与列表类似。是一种运算受限的线性表。
特点
一、只能在栈顶添加或者删除。
二、常见操作是push(入栈)和pop(出栈)
三、此类特点被称为LIFO(last-in-first-out)后进先出(可以理解为洗盘子,最后放进去的最先被洗掉)
代码实现
我们数组中其实是可以直接模拟栈的操作模式,但是为了促进大家理解,此次我们会对栈进行一个封装。
思路解析
- 实现一个Stack类
- 入栈push实现
- 出栈pop实现
- 查看栈顶元素 peek实现
代码实现
class Stack {
value: any[] = [];
top: number = 0;
push(el: any) {
this.value[this.top] = el;
this.top++;
}
pop() {
const temp = this.value[this.top - 1];
this.value.length = --this.top;
return temp;
}
peek() {
return this.value[this.top - 1];
}
}
const a = new Stack();
a.push(1);
a.push(2);
a.push(3);
console.log(a.peek());
console.log(a.value);
console.log(a.pop());
console.log(a.value);
复制代码
数组类型直接模拟
const arr = [];
arr.push(aa);
arr.pop();
复制代码
刷题深入
leetcode-20.有效的括号 - 简单可入门