Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เพิ่มองค์ประกอบใน PriorityQueue โดยใช้ Javascript


การจัดคิวองค์ประกอบใน PriorityQueue หมายถึงการเพิ่มองค์ประกอบในอาร์เรย์ตามลำดับความสำคัญขององค์ประกอบ เราจะพิจารณาว่าตัวเลขที่สูงกว่าจะมีลำดับความสำคัญสูงกว่า เราจะวนรอบคอนเทนเนอร์จนกว่าเราจะพบลำดับความสำคัญที่ต่ำกว่า แล้วเพิ่มองค์ประกอบที่นั่น ถ้าไม่เช่นนั้นเราจะดันไปที่ส่วนท้ายของภาชนะ

โปรดทราบว่าเรากำลังสร้างวัตถุองค์ประกอบที่มีข้อมูลและลำดับความสำคัญ ดังนั้นเราจึงสามารถใช้ฟังก์ชัน enqueue ได้ดังนี้ -

ตัวอย่าง

enqueue(data, priority) {
   // Check if Queue is full
   if (this.isFull()) {
      console.log("Queue Overflow!");
      return;
   }
   let currElem = new this.Element(data, priority);
   let addedFlag = false;
   // Since we want to add elements to end, we'll just push them.
   for(let i = 0; i < this.container.length; i ++) {
       if(currElem.priority < this.container[i].priority) {
          this.container.splice(i, 0, currElem);
         addedFlag = true; break;
      }
   }
   if (!addedFlag) {
      this.container.push(currElem);
   }
}

คุณสามารถตรวจสอบว่าฟังก์ชันนี้ทำงานได้ดีหรือไม่โดยใช้ -

ตัวอย่าง

let q = new PriorityQueue(4);
q.enqueue("Hello", 3);
q.enqueue("World", 2);
q.enqueue("Foo", 8);
q.display();

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

[ { data: 'World', priority: 2 },
  { data: 'Hello', priority: 3 },
  { data: 'Foo', priority: 8 } ]

ดังที่คุณเห็นองค์ประกอบต่างๆ อยู่ในลำดับการจัดเรียง ฟังก์ชัน enqueue ทำงานเหมือนกับการแทรกของการเรียงลำดับการแทรก