Queue
Queue เป็นโครงสร้างข้อมูลแบบเชิงเส้นหรือลิเนียร์ลิสต์ซึ่งการเพิ่มข้อมูลจะทำการที่ปลายข้างหนึ่งเรียกว่าส่วนท้าย (rear) และการนำข้อมูลออกจะกระทำที่ปลายอีกข้างหนึ่งซึ่งเรียกว่า ส่วนหน้าหรือ (front)ลักษณะการทำงานของคิวเป็นลักษณะของการเข้าก่อนออกก่อนหรือที่เรียกว่า FIFO (First In First Out)
- การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดงเรียกว่า Queue Front แต่จะไม่ทำการเอาข้อมูลออกจากคิว
- การนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงจะเรียกว่า Queue Rear แต่ไม่ทำการเพิ่มข้อมูลเข้าไปในคิวการแทนที่ข้อมูลของ
Queueสามารถทำได้มี 2 วิธี คือ
1. การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์
2. การแทนที่ข้อมูลของคิวแบบอะเรย์
การดำเนินการเกี่ยวกับคิว ได้แก่
1. Create Queue = การจัดสรรหน่วยความจำให้แก่ Head Node และค่า Pointer ทั้งสองตัวมีค่าเป็น null และค่าสมาชิกเป็น 0
2. Enqueue = การเพิ่มข้อมูลเข้าไปในคิว
3. Dequeue = การนำข้อมูลออกจากคิว
4. Queue Front = การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดง
5. Queue Rear = การนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง
6. Empty = การตรวจสอบว่าคิวว่างหรือไม่
7. Full Queue = การตรวจสอบว่าคิวเต็มหรือไม่
8. Queue Count = การนับจำนวนสมาชิกที่อยู่ในคิว
9. Destroy Queue = การลบข้อมูลทั้งหมดที่อยู่ในคิว
- การนำข้อมูลเข้าสู่คิว จะไม่นำเข้าในขณะที่คิวเต็มหรือไม่มีที่ว่างถ้าพยายามนำข้อมูลเข้าจะเกิดการผิดพลาดที่เรียกว่า overflow
- การนำข้อมูลออกจากคิว จะไม่สามารถนำอะไรออกจากคิวที่ว่างได้ถ้าพยายามจะเอาออกจะเกิดการผิดพลาดที่เรียกว่า underflow
- จุดเด่นของคิวคิวสามารถจัดการการเข้า-ออกของข้อมูล ใช้เก็บข้อมูลที่ต้องการจัดเรียงเป็นระบบ โดยพิจารณาข้อมูลตามลำดับ ในทำนอง ใครถึงก่อนมีสิทธิ์ได้ใช้ก่อน จึงใช้ในการเรียงลำดับในการแบ่งปันทรัพยากรที่มีอยู่อย่างจำกัดในการทำงาน เช่น การรอคิวการทำงานของเครื่องพิมพ์ในสำนักงาน เป็นต้น
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น