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小时内删除。
发表评论