堆栈是线性数据结构,遵循后进先出的原则。后进先出的意思是,最近添加的项目是第一个被删除的。这种数据结构被命名为堆栈,与现实世界中的堆栈相类似,例如,饼干罐中的一叠饼干或书架上的一叠书。在堆栈中,插入和提取只能在一端进行,即堆栈的顶部。例如,如果我们想吃一块饼干,我们会先得到最上面的一块,然后是第二块,以此类推。
这篇文章将介绍JavaScript中堆栈的实现。由于我们使用的是JavaScript,所以我们不会担心堆栈的大小,因为JavaScript对象的大小可以动态地增长。
在JavaScript中实现堆栈
我们将使用一个JavaScript类来实现堆栈的数据结构。堆栈 类将在其构造函数中包含一个数组,它将被用来存储堆栈中的元素。该类还将定义不同的方法,用来操作存储在堆栈中的数据。数组最基本的方法是insert() 和extract() 方法,用于从堆栈顶部添加和删除元素。
堆栈 类还定义了其他方法,如peek()、 isEmpty()、clear()、print()和size()。
class stack {
constructor() {
this.elements = [];
}
//Places an item on top of the stack
insert(element) {
this.elements.push(element);
}
//Removes an item from the top of the stack
extract() {
this.elements.pop();
}
//Returns the top most element of the stack
peek() {
return this.elements[this.elements.length - 1];
}
//Checks if stack is empty
isEmpty() {
return this.elements.length == 0;
}
//Prints the whole stack
print() {
for (let i = 0; i < this.elements.length; i++) {
console.log(this.elements[i]);
}
}
//Returns the size of the stack
size() {
return this.elements.length;
}
//clears the stack
clear() {
this.elements = [];
}
}
从堆栈中推送和弹出元素
栈的最基本操作是在栈顶插入和提取元素。栈类为这些操作提供了两个方法。

上述代码的第一行声明了一个名为s的新堆栈,然后用insert() 方法向堆栈插入四个元素,然后用extract()方法取出其中的两个。
如何从堆栈中获取顶部元素
堆栈 类定义了peek() 方法来获取堆栈中的顶部元素。

如何检查堆栈是否是空的?
该类还定义了一个方法,可用于检查堆栈是否为空。

如何打印整个堆栈?
可以调用print() 方法来打印整个堆栈。

如何检查堆栈的大小?
size() 方法使用**.length** 属性来获取堆栈的大小。

如何清除整个堆栈?
简单地调用clear() 方法来删除堆栈的每个元素。

结论
堆栈是有用的数据结构,在现实世界中有许多应用,如浏览器历史记录、文本编辑器中的撤销按钮和调用日志。所有这些应用都遵循后进先出的原则,例如,浏览器中的后退按钮会返回到最后访问的页面,而调用日志的第一个条目总是最新的调用。
在JavaScript中实现堆栈是非常容易的,因为它有内置的数组的推送 和弹出 方法。这篇文章展示了JavaScript中堆栈的实现过程。