Data Structure & Algorithm(EP.9) — คิว(Queue)

KongRuksiam Studio
2 min readFeb 28, 2024

--

Queue เป็นโครงสร้างข้อมูลที่มีการเก็บข้อมูลแบบลำดับรูปแบบการจัดเก็บข้อมูลใน Queue เป็นรูปแบบ เข้าก่อนออกก่อน (First In , First Out : FIFO)

เปรียบเสมือนกับการเข้าแถวรอคิว ข้อมูลที่เข้าไปก่อนจะถูกใช้งานก่อน ข้อมูลที่เข้าหลังสุดจะถูกใช้งานทีหลัง

การทำงานของคิว (Queue)

  • Enqueue คือการนำสมาชิกมาต่อตำแหน่งท้ายสุดของคิว
  • Dequeue คือการนำสมาชิกตำแหน่งหน้าสุดออกจากคิว

สร้างคิว (Queue)

class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}

class Queue {
constructor(value) {
const newNode = new Node(value);
this.first = newNode;
this.last = newNode;
this.length = 1;
}

printQueue() {
let temp = this.first;
while (temp !== null) {
console.log(temp.value);
temp = temp.next;
}
}
}
let myQueue = new Queue(1);
console.log(myQueue)
  • Enqueue คือการนำสมาชิกมาต่อตำแหน่งท้ายสุดของคิว
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}

class Queue {
constructor(value) {
const newNode = new Node(value);
this.first = newNode;
this.last = newNode;
this.length = 1;
}
printQueue() {
let temp = this.first;
while (temp !== null) {
console.log(temp.value);
temp = temp.next;
}
}
enqueue(value) {
const newNode = new Node(value);
if (this.length === 0) {
this.first = newNode;
this.last = newNode;
} else {
this.last.next = newNode;
this.last = newNode;
}
this.length++;
}
}
let myQueue = new Queue(1);
myQueue.enqueue(2)
myQueue.enqueue(3)
console.log(myQueue);
  • Dequeue คือการนำสมาชิกตำแหน่งหน้าสุดออกจากคิว
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}

class Queue {
constructor(value) {
const newNode = new Node(value);
this.first = newNode;
this.last = newNode;
this.length = 1;
}
printQueue() {
let temp = this.first;
while (temp !== null) {
console.log(temp.value);
temp = temp.next;
}
}
enqueue(value) {
const newNode = new Node(value);
if (this.length === 0) {
this.first = newNode;
this.last = newNode;
} else {
this.last.next = newNode;
this.last = newNode;
}
this.length++;
}
dequeue() {
if (this.length === 0) return undefined;
let temp = this.first;
if (this.length === 1) {
this.first = null;
this.last = null;
} else {
this.first = this.first.next;
temp.next = null;
}
this.length--;
return temp;
}
}
let myQueue = new Queue(1);
myQueue.enqueue(2);
myQueue.enqueue(3);
myQueue.dequeue()
console.log(myQueue);

เนื้อหาที่เกี่ยวข้อง

ช่องทางการสนับสนุน
🎓 คอร์สพัฒนาเว็บด้วย JavaScript 40 Workshop

🌎 ติดตามข่าวสารเพิ่มเติมได้ที่
Facebook | YouTube | TikTok

--

--

KongRuksiam Studio
KongRuksiam Studio

Written by KongRuksiam Studio

เรียนรู้การเขียนโปรแกรมนอกห้องเรียน

No responses yet