คิวเป็นโครงสร้างข้อมูลแบบนามธรรม ซึ่งค่อนข้างคล้ายกับ Stacks คิวเปิดทั้งสองด้านไม่เหมือนกับสแต็ก ปลายด้านหนึ่งใช้เพื่อแทรกข้อมูล (enqueue) เสมอ และปลายอีกด้านหนึ่งใช้เพื่อลบข้อมูล (dequeue) คิวเป็นไปตามวิธีการเข้าก่อนออกก่อน กล่าวคือ รายการข้อมูลที่เก็บไว้ก่อนจะเข้าถึงได้ก่อน
ตัวอย่างในโลกแห่งความเป็นจริงของคิวอาจเป็นถนนเดินรถทางเดียวแบบเลนเดียว โดยที่รถเข้าก่อน ออกก่อน
แผนภาพต่อไปนี้แสดงวิธีการทำงานของคิว -