栈是一种遵循后进先出原则的有序集合。
添加新元素的一端成为栈顶,另一端成为栈底。
入栈:push()
出栈:pop()
获取栈顶值:top()
获取栈的元素个数:size()
清空栈:clear()
// 栈的实现 class Stack { constructor() { // 存储栈的数据 this.data = []; // 记录栈的数据个数(相当于数组的length) this.count = 0; } // push 入栈方法 push (item) { // 方式一 // ~~this.data.push(item)~~ // 方式二 // ~~this.data[this.data.length] = item;~~ // 方式三 this.data[this.count] = item; // 添加后count要自增 this.count++; } // pop 出栈的方法 pop () { // 出栈的前提是栈内有值,故应先进行检测 if (this.isEmpty()) return; // 移除栈顶数据 // 方式一 // 数组方法,pop移除 // this.data.pop(); // retur this.data; // 方式二 // 计数方式 const temp = this.data[this.count - 1]; delete this.data[this.count - 1]; this.count--; return temp; } // 检测栈是否为空 isEmpty () { return this.count === 0 } // top 用于获取栈顶值 top () { if ( this.isEmpty()) return; return this.data[this.count - 1] } // size 获取栈的数据个数 size () { return this.count; } // clear 用于清空栈数据 clear () { this.data = []; this.count = 0; } }
https://leetcode-cn.com/problems/min-stack/submissions/