คิวเป็นโครงสร้างข้อมูลเชิงเส้นที่สามารถเพิ่ม ข้อมูลเฉพาะตำแหน่งที่เรียกว่า 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)จะจัดให้งานที่เข้ามาได้ทำงานตามลำดับความสำคัญ