วันศุกร์ที่ 28 สิงหาคม พ.ศ. 2552

เรื่อง Queue

เรื่อง Queue

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

ลักษณะการทำงานของคิวเป็นลักษณะของการเข้าก่อนออกก่อนหรือที่
เรียกว่าFIFO (First In First Out)
การทำงานของคิวการใส่สมาชิกตัวใหม่ลงในคิว
เรียกว่าEnqueueซึ่งมีรูปแบบคือenqueu(queue,newElement)
หมายถึง การใส่ข้อมูลnewElement ลงไปที่ส่วนเรียร์ของคิว

การนำสมาชิกออกจากคิว เรียกว่าDequeue ซึ่งมีรูปแบบคือdequeue
(queue, element) หมายถึง การนำออกจากส่วนหน้าของคิวและให้
ข้อมูลนั้นกับ element
-การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดงจะเรียกว่า Queue Front
แต่จะไม่ทำการเอาข้อมูลออกจากคิว
-การนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงจะ เรียกว่าQueue Rear
แต่จะไม่ทำการเพิ่มข้อมูลเข้าไปในคิว

การแทนที่ข้อมูลของคิวสามารถทำได้ 2 วิธี คือ
1. การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์
2. การแทนที่ข้อมูลของคิวแบบอะเรย์

การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์จะประกอบไปด้วย 2 ส่วน คือ
1. Head Nodeจะประกอบไปด้วย 3 ส่วนคือพอยเตอร์จำนวน 2 ตัว
คือ Front และ rear กับจำนวนสมาชิในคิว
2. Data Node จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป

การดำเนินการเกี่ยวกับคิว ได้แก่
1.Create Queue คือ จัดสรรหน่วยความจำให้แก่ Head Node และให้ค่า pointer
ทั้ง 2 ตัวมีค่าเป็น null และจำนวนสมาชิกเป็น
2. Enqueue คือ การเพิ่มข้อมูลเข้าไปในคิว
3. Dequeue คือ การนำข้อมูลออกจากคิว
4. Queue Front คือ เป็นการนำข้อมูลที่อยู่ส่วนต้นของคิวมาแสดง
5. Queue Rear คือ เป็นการนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง
6. Empty Queue คือเป็นการตรวจสอบว่าคิวว่างหรือไม่
7. Full Queue คือ เป็นการตรวจสอบว่าคิวเต็มหรือไม่
8. Queue Count คือ เป็นการนับจำนวนสมาชิกที่อยู่ในคิว
9. Destroy Queue คือ เป็นการลบข้อมูลทั้งหมดที่อยู่ในคิว

DTS:07-28-08-2552

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

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