หน้าเว็บ

วันอาทิตย์ที่ 30 สิงหาคม พ.ศ. 2552

DTS 07-05-08-2552

สรุป Queue

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

การทำงานของคิว (queue)

การใส่สมาชิกตัวใหม่ลงในคิวเรียกว่า Enqueue

และการนำข้อมูลออกจาก คิวเรียกว่า Dequeue

ซึ่งมีรูปแบบคือ enqueue () การแทนที่ข้อมูลของคิว (queue)

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

1.1Head Node จะประกอบไปด้วย3ส่วนคือ พอยเตอร์จำนวน2ตัวคือ Front และ Rear

กับจำนวนสมาชิกในคิว

1.2Data Node จะประกอบไปด้วยข้อมูล Data และพอยเตอร์ที่่ชี้ไปยัง ข้อมูลตัวถัดไป

2.การแทนที่ข้อมูลแบบอาร์เรย์

การนำข้อมูลเข้าสู่โครงสร้างคิว (enqueue)

เป็นกระบวนการอ่านข้อมูลจากภายนอกเข้าสู่โครงสร้างคิวทางด้านปลายที่พอยน์เตอร์ R

ชี้อยู่ โดยพอยน์เตอร์ R จะเปลี่ยนตำแหน่ง ชี้ไปยังตำแหน่งที่ว่างตำแหน่งถัดไป

ก่อนนำข้อมูลเข้าสู่โครงสร้างคิวข้อควรคำนึงถึง คือ ในขณะที่คิวเต็ม (Full Queues)

หรือไม่มีช่องว่างเหลืออยู่ จะไม่สามารถนำข้อมูลเข้าไปเก็บในโครงสร้างคิวได้อีก

ซึ่งจะทำให้เกิดปัญหา “Overflow” ขึ้น


การดำเนินการเกี่ยวกับคิว ได้แก่
1.) Create Queue
เป็นการจัดสรรหน่วยความจำให้กับ Head Node และให้ค่า pointer ทั้ง 2 ตัวมีค่าป็น null และจำนวนสมาชิกเป็นศูนย์

2.) Enqueue
เป็นการเพิ่มข้อมูลเข้าไปในคิว ซึ่ง pointer rear จะเปลี่ยน

3.) Dequeue
เป็นการนำข้อมูลออกจากคิว ซึ่ง pointer front จะเปลี่ยน

4.) Queue Front
เป็นการนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดง

5.) Queue Rear
เป็นการนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง

6.) Empty Queue
เป็นการตรวจสอบว่าคิวว่างหรือไม่

7.) Full Queue
เป็นการตรวจสอบว่าคิวเต็มหรือไม่

8.) Queue Count
เป็นการนับจำนวนสมาชิกที่อยู่ในคิว

9.) Destroy Queue
เป็นการลบข้อมูลทั้งหมดที่อยู่ในคิว วิธีการคือ ต้องทำการ Dequeue ทีละตัว แล้วจึงจะ Destroy

0 Comment:

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