แม้ว่าอาร์เรย์ใน JavaScript จะมีฟังก์ชันทั้งหมดของ Queue ก็ตาม ให้เราปรับใช้คลาส Queue ของเราเอง ชั้นเรียนของเราจะมีฟังก์ชันดังต่อไปนี้ -
- enqueue(element):ฟังก์ชันเพิ่มองค์ประกอบในคิว
- dequeue():ฟังก์ชันที่ลบองค์ประกอบออกจากคิว
- peek():ส่งกลับองค์ประกอบจากด้านหน้าของคิว
- isFull():ตรวจสอบว่าเราถึงขีดจำกัดองค์ประกอบในคิวหรือไม่
- isEmpty():ตรวจสอบว่าคิวว่างหรือไม่
- clear():ลบองค์ประกอบทั้งหมด
- display():แสดงเนื้อหาทั้งหมดของอาร์เรย์
เริ่มต้นด้วยการกำหนดคลาสอย่างง่ายด้วยคอนสตรัคเตอร์ที่ใช้ขนาดสูงสุดของคิวและฟังก์ชันตัวช่วยที่จะช่วยเราเมื่อเรานำฟังก์ชันอื่นๆ สำหรับคลาสนี้ไปใช้ ขณะที่เราใช้สแต็ค เราจะใช้คิวโดยใช้อาร์เรย์ด้วยเช่นกัน
ตัวอย่าง
class Queue {
constructor(maxSize) {
// Set default max size if not provided
if (isNaN(maxSize)) {
maxSize = 10;
}
this.maxSize = maxSize;
// Init an array that'll contain the queue values.
this.container = [];
}
// Helper function to display all values while developing
display() {
console.log(this.container);
}
// Checks if queue is empty
isEmpty(){
return this.container.length === 0;
}
// checks if queue is full
isFull() {
return this.container.length >= this.maxSize;
}
} เรายังได้กำหนดฟังก์ชันเพิ่มเติมอีก 2 อย่างคือ isFull และ isEmpty เพื่อตรวจสอบว่าคิวเต็มหรือว่างเปล่า
ฟังก์ชัน isFull จะตรวจสอบว่าความยาวของคอนเทนเนอร์เท่ากับหรือมากกว่า maxSize และส่งคืนตามนั้นหรือไม่
ฟังก์ชัน isEmpty จะตรวจสอบว่าคอนเทนเนอร์มีขนาดเท่ากับ 0 หรือไม่
สิ่งเหล่านี้จะมีประโยชน์เมื่อเรากำหนดการดำเนินการอื่นๆ ฟังก์ชันที่เรากำหนดตั้งแต่นี้เป็นต้นไปจะเข้าไปอยู่ในคลาส Queue ทั้งหมด