05 สิงหาคม 2552

DTS_7 5/08/2552

สรุปผลเรียนเรื่อง คิว (queue)

คิวเป็นโครงสร้างข้อมูลแบบเชิงเส้นหรือลิเนียร์ลิสต์การเพิ่มข้อมูล
จะทำการเพิ่มจากส่วนท้ายซึ่งเิรียกว่าเรียร์ (rear) และทำการนำข้อมูล
ออกอีกด้านหนึ่งซึ่งเรียกว่าส่วนหน้าหรือฟรอนต์ (front) ลักษณะการทำงาน
ของคิวจะเรียกว่าเข้าก่อนออกก่อนหรือ FIFO (First in First out)

การทำงานของคิว (queue)ประกอบด้วย
1.การใส่สมาชิกตัวใหม่ลงในคิวเรียกว่า Enqueue และการนำข้อมูลออกจากคิวเรียกว่า Dequeue
2.การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดงเรียกว่า Queue Front แต่จะไม่ทำการนำข้อมูลออกจากคิว และการนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงเรียกว่า Queue Rear และจะไม่เพิ่มข้อมูลไปในคิวเช่นกัน

การแทนที่ข้อมูลของคิว (queue)
1.การแทนที่ข้อมูลแบบลิงค์ลิสตจะประกอบไปด้วย2ส่วนคือ
1.1Head Node จะประกอบไปด้วย3ส่วนคือ พอยเตอร์จำนวน2ตัวคือFront และ Rear กับจำนวนสมาชิกในคิว
1.2Data Node จะประกอบไปด้วยข้อมูล Data และพอยเตอร์ที่่ชี้ไปยังข้อมูลตัวถัดไป
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