Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

Enqueue PriorityQueue ใน JavaScript: เพิ่มสมาชิกตาม priority


Enqueue PriorityQueue หมายถึงเพิ่มสมาชิกในอาร์เรย์เรียงตาม priority ถือว่าเลขมาก = priority สูง วนลูปหา priority ต่ำกว่าแล้วแทรก ถ้าไม่มีก็ push ท้าย

สร้าง element object พร้อม data และ priority ใช้งานได้ดังนี้:

ตัวอย่าง

enqueue(data, priority) { 
  if (this.isFull()) { 
    console.log("Queue Overflow!"); 
    return; 
  } 
  let currElem = new this.Element(data, priority); 
  let addedFlag = false; 
  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 } ]

สมาชิกเรียงตาม priority enqueue ทำงานเหมือน insertion sort