โครงสร้างข้อมูลคิวเข้าก่อนออกก่อน คิวถูกใช้ในพื้นที่ต่างๆ สำหรับอัลกอริธึมการข้ามผ่านกราฟ Breadth First Search เป็นต้น คิวมีการดำเนินการพื้นฐานบางอย่าง ที่นี่เราจะเห็นการดำเนินการของคิวเหล่านั้น และดูตัวอย่างหนึ่งรายการโดยใช้ ADT ของคิว
ADT (ประเภทข้อมูลนามธรรม) เป็นประเภทข้อมูลพิเศษ ซึ่งพฤติกรรมถูกกำหนดโดยชุดของค่าและชุดของการดำเนินการ มีการใช้คำหลัก "บทคัดย่อ" เนื่องจากเราสามารถใช้ประเภทข้อมูลเหล่านี้ เราสามารถดำเนินการต่างๆ ได้ แต่การดำเนินการเหล่านั้นทำงานอย่างไรซึ่งถูกซ่อนจากผู้ใช้โดยสิ้นเชิง ADT ประกอบด้วยประเภทข้อมูลดั้งเดิม แต่ตรรกะการทำงานถูกซ่อนไว้
นี่เป็นการดำเนินการหรือฟังก์ชันบางอย่างของ ADT ของคิว
- isFull() ใช้ตรวจสอบว่าคิวเต็มหรือไม่
- isEmpry() ใช้ตรวจสอบว่าคิวว่างหรือไม่
- enqueue(x) ใช้กด x ที่ท้ายคิว
- delete() ใช้เพื่อลบหนึ่งองค์ประกอบจากส่วนหน้าของ
- front() ใช้เพื่อรับองค์ประกอบส่วนใหญ่ของคิว
- size() ฟังก์ชันนี้ใช้เพื่อรับจำนวนองค์ประกอบที่มีอยู่ในคิว
ตัวอย่าง
#include<iostream> #include<queue> using namespace std; main(){ queue<int> que; if(que.empty()){ cout << "Queue is empty" << endl; } else { cout << "Queue is not empty" << endl; } //insert elements into queue que.push(10); que.push(20); que.push(30); que.push(40); que.push(50); cout << "Size of the queue: " << que.size() << endl; //delete and dispay elements while(!que.empty()) { int item = que.front(); // read element from first position que.pop(); cout << item << " "; } }
ผลลัพธ์
Queue is empty Size of the queue: 5 10 20 30 40 50