在JavaScript中堆栈的实现过程

149 阅读3分钟

堆栈是线性数据结构,遵循后进先出的原则。后进先出的意思是,最近添加的项目是第一个被删除的。这种数据结构被命名为堆栈,与现实世界中的堆栈相类似,例如,饼干罐中的一叠饼干或书架上的一叠书。在堆栈中,插入和提取只能在一端进行,即堆栈的顶部。例如,如果我们想吃一块饼干,我们会先得到最上面的一块,然后是第二块,以此类推。

这篇文章将介绍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中堆栈的实现过程。