วันอังคารที่ 8 กันยายน พ.ศ. 2552

DTS 07-05-08-2552

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

- จุดเด่นของคิวคิวสามารถจัดการการเข้า-ออกของข้อมูล ใช้เก็บข้อมูลที่ต้องการจัดเรียงเป็นระบบ โดยพิจารณาข้อมูลตามลำดับ ในทำนอง ใครถึงก่อนมีสิทธิ์ได้ใช้ก่อน จึงใช้ในการเรียงลำดับในการแบ่งปันทรัพยากรที่มีอยู่อย่างจำกัดในการทำงาน เช่น การรอคิวการทำงานของเครื่องพิมพ์ในสำนักงาน เป็นต้น

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

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