JavaScript 堆栈和队列
本教程将讨论在 JavaScript 中使用数组实现堆栈和队列。
我们可以在 JavaScript 中使用数组和链表来实现堆栈和队列。堆栈遵循先进后出原则,这意味着第一个添加到堆栈的元素将在删除所有其他元素后删除,反之亦然。队列按照先进先出的原则工作,这意味着第一个添加到堆栈的元素将首先被删除,反之亦然。与链表相比,使用数组实现堆栈和队列更容易,因为我们可以使用许多预定义的函数。例如,要实现堆栈,我们可以使用 push()
和 pop()
函数。push()
函数用于在堆栈或数组的末尾添加一个元素,而 pop()
函数用于从堆栈或数组的末尾删除一个元素。让我们使用 JavaScript 中的数组来实现一个堆栈。请参考下面的代码。
var MyStack = [];
MyStack.push(1);
MyStack.push(9);
console.log('Stack before pop',MyStack);
MyStack.pop();
console.log('Stack after pop',MyStack);
输出:
Stack before pop (2) [1, 9]
Stack after pop [1]
在上面的代码中,我们使用 push()
函数将两个值 1 和 9 添加到堆栈中,你可以在输出中看到这两个值存储在堆栈中。我们使用 pop()
函数从堆栈中删除最后一个元素,你可以在输出中看到最后一个元素已从堆栈中删除。你可以使用 length
函数检查堆栈的大小。数组的堆栈实现性能非常高,因为我们只是在数组末尾添加一个元素,同时从末尾删除它。你也可以使用链表实现堆栈,但你找不到任何预构建函数来帮助你。现在,让我们使用数组、push()
和 shift()
函数来实现一个队列。push()
函数用于在队列或数组的末尾添加一个元素,而 shift()
函数用于从堆栈或数组的开头删除一个元素。请参考下面的代码。
var MyQueue = [];
MyQueue.push(1);
MyQueue.push(9);
console.log('Queue before shift',MyQueue);
MyQueue.shift();
console.log('Queue after shift',MyQueue);
输出:
Queue before shift (2) [1, 9]
Queue after shift [9]
在上面的代码中,我们使用 push()
函数将两个值 1 和 9 添加到队列中,你可以在输出中看到这两个值存储在队列中。我们使用 shift()
函数从队列中删除第一个元素,你可以在输出中看到第一个元素已从队列中删除。你可以使用 length
函数检查队列的大小。使用数组构建队列的性能非常低,因为当 shift()
函数删除第一个元素时,它必须将数组中的每个元素向后移动一步。所以,如果你想实现一个包含大量元素的队列,那么你应该使用链表来实现一个队列。
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
用 jQuery 检查复选框是否被选中
发布时间:2024/03/24 浏览次数:102 分类:JavaScript
-
在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的
jQuery 中的 Window.onload 与 $(document).ready
发布时间:2024/03/24 浏览次数:180 分类:JavaScript
-
本教程演示了如何在 jQuery 中使用 Window.onload 和 $(document).ready 事件。