JavaScript 中的队列数据结构


在本文中,我们将讨论 JavaScript 中的队列数据结构。它是一个线性数据结构,其中元素的入队和出队遵循 FIFO(先进先出顺序)。队列两端是开放的。一端始终用于插入数据,另一端用于删除数据。在这里,我们使用两个指针后端和前端。后端用于插入数据,前端用于删除数据。

队列的现实示例可以是单车道单行道,其中车辆先进入,先退出。

下图显示了队列的工作原理 −

示例 1

以下示例演示如何在 JavaScript 中实现队列类数据结构。我们还将展示队列的 enqueue()、peek() 和 size() 方法的使用。

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Queue Data Structure</title>
   </head>
   <body>
      <script type="text/javascript">
         class Queue {
            constructor() {
               this.queArr = [];
               this.frontIdx = 0; //head
               this.rearIdx = 0; //tail
            }
            enqueue(elem) {
               this.queArr[this.rearIdx] = elem;
               this.rearIdx++;
            }
            dequeue() {
               if (this.isEmpty()) {
                  document.write("Queue Underflow..!</br>");
                  return;
               }
               let elem = this.queArr[this.frontIdx];
               delete this.queArr[this.frontIdx];
               this.frontIdx++;
               return elem;
            }
            peek() {
               return (
                  "The peek element of the Queue is : " +
                  this.queArr[this.frontIdx] +
                  "</br>"
               );
            }
            size() {
               document.write("The size of the Queue is : ");
               return this.rearIdx - this.frontIdx;
            }
            isEmpty() {
               document.write("<br>");
               return this.queArr.length == 0;
            }
            display() {
               if (this.queArr.length !== 0) {
                  return "The Queue elements are : " + this.queArr + "</br>";
               } else {
                  document.write("The Queue is Empty..! <br>");
               }
            }
            clear() {
               document.write("</br>The Queue is cleared..!" + "<br>");
               this.queArr = [];
            }
         }
            let queue = new Queue();
            queue.enqueue(1);
            queue.enqueue(2);
            queue.enqueue(3);
            queue.enqueue(4);
            queue.enqueue(5);
            document.write(queue.display());
            document.write(queue.peek());
            document.write(queue.size());
      </script>
   </body>
</html>

示例 2

以下示例演示如何在 JavaScript 中实现队列类数据结构。并且还讨论如何对队列元素执行各种操作,以修改或检查队列的状态。

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Queue Data Structure</title>
   </head>
   <body>
   <script type="text/javascript">
      class Queue {
         constructor() {
            this.queArr = [];
            this.frontIdx = 0; //head
            this.rearIdx = 0; //tail
         }
         enqueue(elem) {
            this.queArr[this.rearIdx] = elem;
            this.rearIdx++;
         }
         dequeue() {
            if (this.isEmpty()) {
               document.write("Queue Underflow..!</br>");
               return;
            }
            let elem = this.queArr[this.frontIdx];
            delete this.queArr[this.frontIdx];
            this.frontIdx++;
            return elem;
         }
         peek() {
         return (
               "The peek element of the Queue is : " +
               this.queArr[this.frontIdx] +
               "</br>"
            );
         }
         size() {
            document.write("The size of the Queue is : ");
            return this.rearIdx - this.frontIdx;
         }
         isEmpty() {
            document.write("<br>");
            return this.queArr.length == 0;
         }
         display() {
            if (this.queArr.length !== 0) {
               return "The Queue elements are : " + this.queArr + "</br>";
            } else {
               document.write("The Queue is Empty..! <br>");
            }
         }
        clear() {
            document.write("</br>The Queue is cleared..!" + "<br>");
            this.queArr = [];
         }
      }
      let queue = new Queue();
      queue.enqueue(1);
      queue.enqueue(2);
      queue.enqueue(3);
      queue.enqueue(4);
      queue.enqueue(5);
      document.write(queue.display());
      document.write(queue.peek());
      document.write(queue.size());
      queue.clear();
      queue.display();
   </script>
   </body>
</html>

更新于:16-12-2022

481 Views

开启你的 职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.