js 栈的实现方式
栈是一种常见的数据结构,它具有"后进先出"(Last In First Out,LIFO)的特性。在JavaScript中,可以使用多种方式实现栈数据结构。
1. 使用数组:
在JavaScript中,数组本身就具备栈的部分特性,我们可以通过数组的一些方法来实现栈功能。例如,使用`push()`方法将元素添加到数组的末尾,使用`pop()`方法将数组的最后一个元素移除。
javascript
class Stack {
  constructor() {
    this.items = [];
  }
  添加元素到栈顶
  push(element) {
    this.items.push(element);
  }
  移除栈顶元素并返回该元素
  pop() {
    if (this.isEmpty()) {
      return "Underflow";
    }
    return this.items.pop();
  }
  返回栈顶元素
  peek() {
    if (this.isEmpty()) {
      return "No elements in the stack";
    }
    return this.items[this.items.length - 1];
  }
javascript的特性
  判断栈是否为空
  isEmpty() {
    return this.items.length === 0;
  }
  清空栈
  clear() {
    this.items = [];
  }
  返回栈的长度
  size() {
    return this.items.length;
  }
  打印栈内元素
  print() {
    console.log(String());
  }
}
上述代码中,我们使用数组`items`来存储栈内元素。栈中的方法包括`push()`用于入栈,`pop()`用于出栈,`peek()`用于获取栈顶元素,`isEmpty()`用于判断栈是否为空,`clear()`用于清空栈,`size()`用于获取栈的长度。
2. 使用链表:
另一种实现栈的方式是使用链表。栈可以通过在链表头部进行插入和删除操作来模拟。通过在链表的头部添加元素,可以实现元素的快速插入和删除操作。
javascript
class Node {
  constructor(element) {
    this.element = element;
    = null;
  }
}
class Stack {
  constructor() {
    this.head = null;
    this.length = 0;
  }
  添加元素到栈顶
  push(element) {
    const newNode = new Node(element);
    if (this.isEmpty()) {
      this.head = newNode;
    } else {
      = this.head;
      this.head = newNode;
    }
    this.length++;
  }
  移除栈顶元素并返回该元素
  pop() {
    if (this.isEmpty()) {
      return "Underflow";
    }
    const removedNode = this.head;
    this.head = ;
    this.length;
    return removedNode.element;
  }
  返回栈顶元素
  peek() {
    if (this.isEmpty()) {
      return "No elements in the stack";
    }
    return this.head.element;
  }
  判断栈是否为空
  isEmpty() {
    return this.length === 0;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。