111 次浏览
查看优先队列意味着获取具有最高优先级的值而不将其删除。因此,我们可以实现 peek 函数如下 &minusl 示例peek() { if (isEmpty()) { console.log("队列下溢!"); return; } return this.container[this.container.length - 1]; }您可以使用以下方法检查此函数是否正常工作 − 示例let q = new PriorityQueue(4); q.enqueue("Hello", 3); q.enqueue("World", 2); q.enqueue("Foo", 8); console.log(q.peek()); q.display();输出这将给出以下输出 −{ data: 'Foo', priority: 8 } [ { data: 'World', priority: 2 }, { data: 'Hello', priority: 3 }, { data: 'Foo', priority: 8 } ]如 ... 阅读更多
226 次浏览
从优先队列中删除元素意味着删除最高优先级的元素。我们将具有最高优先级的元素存储在数组的末尾,我们可以简单地将其弹出以将其删除。因此,我们可以实现 dequeue 函数如下 − 示例dequeue() { // 检查是否为空 if (this.isEmpty()) { console.log("队列下溢!"); return; } return this.container.pop(); }您可以使用以下方法检查此函数是否正常工作let q = new PriorityQueue(4); q.enqueue("Hello", 3); q.enqueue("World", 2); q.enqueue("Foo", 8); console.log(q.dequeue()); q.display();输出这将给出以下输出 −{ data: 'Foo', priority: 8 ... 阅读更多
156 次浏览
将元素入队到优先队列意味着根据元素的优先级按顺序将它们添加到数组中。我们将认为较高的数字具有较高的优先级。我们将循环遍历容器,直到找到较低的优先级,然后在那里添加元素。如果没有,我们将把它推到容器的末尾。请注意,我们正在使用数据和优先级创建元素对象。因此,我们可以实现 enqueue 函数如下 − 示例enqueue(data, priority) { // 检查队列是否已满 if (this.isFull()) { console.log("队列上溢!"); return; ... 阅读更多
438 次浏览
我们的类将具有以下函数 −enqueue(element):用于向队列中添加元素的函数。dequeue():从队列中删除元素的函数。peek():返回队列前端的元素。isFull():检查我们是否达到了队列上的元素限制。isEmpty():检查队列是否为空。clear():删除所有元素。display():显示数组的所有内容让我们从定义一个简单的类开始,该类具有一个构造函数,该构造函数获取队列的最大大小和一个辅助函数,该函数将在我们实现此类的其他函数时帮助我们。我们还必须定义另一个结构作为… 阅读更多
3K+ 次浏览
在本文中,我们将讨论 JavaScript 中的优先队列数据结构。优先队列是一种抽象数据类型 (ADT),它类似于常规队列或堆栈数据结构,但此外,每个元素都具有与其关联的“优先级”。在优先队列中,高优先级的元素在低优先级的元素之前被处理。如果两个元素具有相同的优先级,则根据它们在队列中的顺序来处理它们。示例 1 下面的示例演示了 JavaScript 中的优先队列类数据结构。在这里,我们将元素插入到… 阅读更多
199 次浏览
以下是队列类的完整实现 −示例class Queue { constructor(maxSize) { // 如果未提供,则设置默认最大大小 if (isNaN(maxSize)) { maxSize = 10; } this.maxSize = maxSize; // 初始化一个将包含队列值的数组。 this.container = []; } // 辅助函数,用于在开发过程中显示所有值 display() { console.log(this.container); } // 检查队列是否为空 isEmpty() { ... 阅读更多
270 次浏览
我们可以通过将容器元素重新赋值为空数组来清除内容。例如, clear() { this.container = []; }示例您可以使用以下方法检查此函数是否正常工作:let q = new Queue(2); q.enqueue(3); q.enqueue(4); q.display(); q.clear(); q.display();输出这将给出以下输出:[ 3, 4 ] [ ]
478 次浏览
查看队列意味着获取队列头的值。因此,我们可以实现 peek 函数如下 − 示例peek() { if (isEmpty()) { console.log("队列下溢!"); return; } return this.container[0]; }您可以使用以下方法检查此函数是否正常工作 − 示例let q = new Queue(2); q.enqueue(3); q.enqueue(4); console.log(q.peek()); q.display();输出这将给出以下输出 −3 [ 3, 4 ]正如您在这里看到的,peek() 与 dequeue 不同,因为它只返回前端值而不将其删除。
735 次浏览
从队列中删除元素意味着从队列的前端/头部删除它们。我们将容器数组的开头作为队列的头部,因为我们将对它执行所有操作。因此,我们可以实现 pop 函数如下 − 示例dequeue() { // 检查是否为空 if (this.isEmpty()) { console.log("队列下溢!"); return; } return this.container.shift(); }您可以使用以下方法检查此函数是否正常工作 − 示例let q = new Queue(2); q.dequeue(); q.enqueue(3); q.enqueue(4); console.log(q.dequeue()); q.display();输出这将给出以下输出 −队列下溢! 3 [ ... 阅读更多
290 次浏览
将元素入队到队列意味着将它们添加到数组的末尾。我们将容器数组的末尾作为队列的尾部,因为我们将对它执行所有插入操作。因此,我们可以实现 enqueue 函数如下 −示例enqueue(element) { // 检查队列是否已满 if (this.isFull()) { console.log("队列上溢!"); return; } // 因为我们想将元素添加到末尾,所以我们将只推送它们。 .container.push(element); }您可以使用以下方法检查此函数是否正常工作 −示例 let q ... 阅读更多