หน้าเว็บ

วันเสาร์ที่ 8 สิงหาคม พ.ศ. 2552

DTS 07-05-08-2552

Queue

คิว(Queue) จะมีโครงสร้างแบบเชิงเส้น และอันดับของการนำสมาชิกเข้าออกจากคิวมีความ สำคัญ คือ สมาชิกที่เข้าไปอยู่ในคิวก่อนจะออกจากคิวก่อนสมาชิกที่เข้าไปในคิวทีหลัง นั่นคือการเข้าก่อนออกก่อน ( First In First Out หรือ FIFO )

Queue จะมีงานหลัก ๆ ที่ต้องทำงานอยู่ด้วยกัน 2 อันก็คือ

1.ใส่ข้อมูลลงไปใน Queue เราเรียกว่า “Enqueue”
2.เอาข้อมูลออกจาก Queue เพื่อนำไปใช้ เราเรียกว่า “Dequeue”

ใช้ตัวชี้ 2 ตัวคือ front กับ rear ดังนั้นถ้า Enqueue คือเอาเข้า ก็ต้องเอามาต่อ rear คือข้างหลังถ้า Dequeue คือเอาออก ก็ต้องเอาตรง front ออกไป เพราะมันเข้ามาก่อน


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

1.การแทนที่ข้อมูลของคิวแบบอะเรย์ ซึ่งเป็นการจัดสรรเนื้อที่หน่วยความจำแบบสแตติก นั่นคือ มีการกำหนดขนาดของคิวล่วงหน้าว่ามีขนาดเท่าใดและจะมีการจัดสรรเนื้อที่หน่วยความจำให้เลย

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

การดำเนินการเกี่ยวกับคิว

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




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

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