5.1 คิว ( Queues )
คิว (Queues) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ซึ่งมีลักษณะเป็นแถวรอคอย ใน
การเพิ่มข้อมูลเข้าไปในคิว สามารถเพิ่มได้ตรง ส่วนท้ายคิวที่เรียกว่า Rear ในขณะที่การลบ
ข้อมูลจะกระทำตรงส่วนหัวคิวที่เรียกว่า Front ซึ่งข้อจำกัดดังกล่าว จึงทำให้มั่นใจได้ว่าการ
ประมวลผลภายในโครงสร้างข้อมูลแบบคิวนั้นข้อมูลที่เข้ามาก่อนจะถูกนำออกไปก่อน ซึ่งเป็นไป
ในลักษณะตามลำดับที่เรียกว่าเข้าก่อนออกก่อน( First In – First Out: FIFO )

รูปที่5.1 แสดงการเพิ่มข้อมูลและลบข้อมูลออกจากคิว
เราสามารถจินตนาการโครงสร้างคิวจากการดำเนินชีวิตปัจจุบันของมนุษย์โดยทั่ว
ไปได้ เช่น การเข้าคิวซื้อตั๋วชมภาพยนตร์ การเข้าคิวบริการฝาก – ถอนเงินในธนาคารหรือการเข้า
คิวรอขึ้นรถโดยสารประจำทาง เป็นต้น ตัวอย่างการประยุกต์คิวมาใช้งานบนคอมพิวเตอร์ เช่น
- การเข้าคิวของโปรเซสหรืองานต่างๆ เพื่อรอการประมวลผลจากซีพียูตามลำดับ
- การแบ่งเวลา (Time Sharing) ด้วยการจำกัดตารางเวลาการประมวลผลของ
แต่ละโปรเซสส่งผลให้สามารถหมุนเวียนการประมวลผลในแต่ละโปรเซสสลับไป
มาได้ ทำให้ดูเหมือนกับการประมวลผลงานหลายๆ งานได้ในเวลาเดียวกัน
(Multitasking) - การเข้าคิวเพื่อรอพิมพ์ผลลัพธ์จากเครื่องพิมพ์

รูปที่5.2 หลักการของคิว (Queue Concept)