วันศุกร์ที่ 9 ตุลาคม พ.ศ. 2552

DTS-07 05/08/52

Queue

โครงสร้างข้อมูลแบบคิว (Queue)

คิวเป็นโครงสร้างข้อมูลแบบหนึ่งซึ่งมีลักษณะที่ว่า ข้อมูลที่นำเข้าไปเก็บก่อนจะถูกนำออกมาทำงานก่อน ส่วนข้อมูลที่เข้าไปเก็บทีหลังก็จะถูกนำออกมาใช้งานทีหลัง ขึ้นอยู่กับลำดับการเก็บข้อมูล จะเรียกลักษณะการทำงานแบบนี้ว่า เข้าก่อนออกก่อน หรือ First In First Out (FIFO)
โครงสร้างข้อมูลแบบนี้เป็นโครงสร้างที่ปรากฏอยู่โดยทั่วๆ ไป โดยเฉพาะอย่างยิ่งในระบบปฏิบัติการคอมพิวเตอร์ ในระบบคมนาคม รวมทั้งในระบบการทดลองดาวเทียมด้วย ลักษณะของโครงสร้างแบบคิวจะเหมือนกับการเข้าแถวรอคอย ไม่ว่าจะเป็นการรอคอยอะไรก็ตาม หรือจะเรียกสั้นๆ ว่า เข้าคิวก็ได้ ด้วยคุณสมบัติที่เด่นชัดของการทำงานของโครงสร้างข้อมูลแบบคิวนี้ ว่าสิ่งใดที่เข้าก่อนย่อมต้องได้รับการทำงานก่อน เช่น การสั่งพิมพ์งานพร้อมกันหลายๆ คน โดยใช้เครื่องพิมพ์เครื่องเดียวกัน ทำให้ระบบจะต้องมีการจัดระบบให้มีการเข้าคิวรอคอยการทำงาน ถ้าใครสั่งพิมพ์ก่อนก็จะเข้าคิวไปรอการพิมพ์ในลำดับแรก ใครสั่งเป็นคนต่อไปก็จะต้องเข้าคิวรอจนกว่างานแรกจะทำการพิมพ์เสร็จ จึงจะมาทำงานกับคิวที่รออยู่ต่อไป







กระบวนการทำงานของ queue จะแบ่งเป็น 9 ขั้นตอนได้แก่


1. Create

2. Enqueue

3. Dequeue

4. Queue front

5. Queue rear

6. Empty queue

7. Full queue

8. Queue count

9. Destroy queue



ต่อไปเราจะมาดูว่ากระบวนการแต่ละขั้นตอนมีการทำงานอย่างไร

Create queue: สร้าง queue คือจัดสรรหน่วยความจำเพื่อทำการสร้าง Queue ขึ้นมา
สำหรับการใส่ข้อมูลลงไป

Enqueue: คือการเพิ่มข้อมูลลงไปใน Queue แต่ข้อควรระวังในการ เพิ่มข้อมูลลงไปใน Queue
เราควรเช็ค ใน Queue ว่าข้อมูลนั้นเต็มหรือไม่ ถ้า ไม่เราก็สามารถ Enqueue ได้ แต่
ถ้าข้อมูลเต็มแล้วเรายังใส่ข้อมูลลงไปจะทำให้เกิด การ ล้นของข้อมูลเกิดขึ้นหรือเรียก
กันว่าการ Overflow

Dequeue: คือการลบรายการออกจาก Queue แต่ข้อควรระวังในการ ลบขอมูลออกจาก Queue
เราควรเช็ค ใน Queue ว่ามีข้อมูลอยู่หรือไม่ ถ้า มีเราก็สามารถ Dequeue ได้ แต่
ถ้าไม่มีข้อมูลอยู่ใน Queue จะทำให้เกิด การ Under Flow เกิดขึ้น

Queue front: เป็นการเรียกข้อมูลตัวหน้าหรือ front มาออกมา Show


Queue rear: เป็นการเรียกข้อมูลตัวหลังหรือ rear มาออกมา Show



Empty queue: ตรวจสอบว่าข้อมูล queue ว่างหรือไม่


Full queue: ตรวจสอบว่าข้อมูลใน queue เต็มหรือไม่


Queue count: จะทำการนับข้อมูล และบอกจำนวนรายการใน queue


Destroy queue: เป็นการลบข้อมูลทั้งหมดใน queue

ไม่มีความคิดเห็น:

แสดงความคิดเห็น