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