วันอังคารที่ 4 สิงหาคม พ.ศ. 2552

LECTURE7

DTS:07-05-08-2552

เรื่อง 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 และจำนวนสมาชิกเป็น 0

2. Enqueue คือ การเพิ่มข้อมูลเข้าไปในคิว

3. Dequeue คือ การนำข้อมูลออกจากคิว

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

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

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

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

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

9. Destroy Queue คือ เป็นการลบข้อมูลทั้งหมดที่อยู่ในคิว


-การนำข้อมูลเข้าสู่คิวจะไม่สามารถนำเข้าในขณะที่คิวเต็มหรือไม่มีที่ว่างถ้าพยายามนำเข้าจะทำให้เกิดความผิดพลาดที่เรียกว่า overflow

-การนำข้อมูลออกจากคิวจะไม่สามารถนำอะไรออกจากคิวที่ว่างเปล่าได้ถ้าพยายามจะทำให้เกิดความผิดพลาดที่เรียกว่าunderflow

-ในกรณีที่เป็นคิวแบบวงกลมคิวจะเต็มก็ต่อเมื่อมีการเพิ่มข้อมูลเข้าไปในคิวเรื่อยๆจนกระทั่งrearมีค่าน้อกว่า front อยู่หนึ่งค่าคือ rear = front - 1

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

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