跳到主要内容

JavaScript 程序:实现堆栈

要理解此示例,你应该具备以下 JavaScript 编程主题的知识:

堆栈是一种遵循 后进先出 (LIFO) 原则的数据结构。最后添加的元素将首先被访问。这就像你把书本堆叠在一起,你最后放的那本书会首先被取出。

示例:实现堆栈

// 程序实现堆栈数据结构
class Stack {
constructor() {
this.items = [];
}

// 向堆栈添加元素
add(element) {
return this.items.push(element);
}

// 从堆栈移除元素
remove() {
if (this.items.length > 0) {
return this.items.pop();
}
}

// 查看最后一个元素
peek() {
return this.items[this.items.length - 1];
}

// 检查堆栈是否为空
isEmpty() {
return this.items.length == 0;
}

// 获取堆栈的大小
size() {
return this.items.length;
}

// 清空堆栈
clear() {
this.items = [];
}
}

let stack = new Stack();
stack.add(1);
stack.add(2);
stack.add(4);
stack.add(8);
console.log(stack.items);

stack.remove();
console.log(stack.items);

console.log(stack.peek());

console.log(stack.isEmpty());

console.log(stack.size());

stack.clear();
console.log(stack.items);

输出

[1, 2, 4, 8]
[1, 2, 4]
4
false
3
[]

在上述程序中,创建了 Stack 类来实现堆栈数据结构。实现了 add()remove()peek()isEmpty()size()clear() 等类方法。

使用 new 操作符创建了一个 stack 对象,并通过该对象访问了各种方法。

  • 这里,初始时 this.items 是一个空数组。
  • push() 方法将元素添加到 this.items 中。
  • pop() 方法从 this.items 中移除最后一个元素。
  • length 属性给出了 this.items 的长度。