วันพุธที่ 5 สิงหาคม พ.ศ. 2552

DTS07-05-08-2552

คิว(Queue)
คิวเป็นโครงสร้างข้อมูลเชิงเส้นที่สามารถเพิ่ม ข้อมูลเฉพาะตำแหน่งที่เรียกว่า Rear และลบข้อมูลเฉพาะตำแหน่งที่เรียกว่า Front คิวเป็นโครงสร้างข้อมูลแบบเข้าก่อนออกก่อน (First In First Out :FIFO)

การแทนที่ข้อมูลของคิว มี 2 วิธี คือ

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

1.1.Head Node จะประกอบไปด้วย 3 ส่วน คือพอยเตอร์จำนวน 2 ตัว คือ Front และ rear กับจำนวนสมาชิกในคิว

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

-Create Queue = จัดสรรหน่วยความจำให้แก่ Head Node และให้ค่า Pointer ทั้ง 2 ตัวมีค่าเป็น null และจำนวนสมาชิกเป็น 0

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

-Dequeue = การนำข้อมูลออกจากคิว

-Queue Front = การนำข้อมูลที่อยู่ส่วนต้นของคิวมาแสดง

-Queue Rear = การนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง

-Empty Queue = การตรวจสอบว่าคิวว่างหรือไม่

-Full Queue = การตรวจสอบว่าคิวเต็มหรือไม่

-Queue Count = การนับจำนวนสมาชิกที่อยู่ในคิว

-Destroy Queue = การลบข้อมูลทั้งหมดที่อยู่ในคิว

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

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

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

แบบคิววงกลม (Circular Queue)

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

การประยุกต์ใช้คิว

คิวถูกประยุกต์ใช้มากในการจำลองระบบงานธุรกิจ เช่น การให้บริการลูกค้า ต้องวิเคราะห์จำนวนลูกค้าในคิวที่เหมาะสม ว่าเป็นจำนวนเท่าใด เพื่อให้ลูกค้าเสียเวลาน้อยที่สุดในด้านคอมพิวเตอร์ ได้นำคิวมาใช้ คือ ในระบบปฏิบัติการ (Operation System) ในเรื่องของคิวของงานที่เข้ามาทำงาน(ขอใช้ทรัพยากรระบบของ CPU)จะจัดให้งานที่เข้ามาได้ทำงานตามลำดับความสำคัญ

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

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