Hàng đợi là một cấu trúc dữ liệu trừu tượng chứa một tập hợp các phần tử. Hàng đợi thực hiện cơ chế FIFO tức là phần tử được chèn vào trước cũng sẽ bị xóa trước.
Hàng đợi hình tròn là một loại hàng đợi trong đó vị trí cuối cùng được kết nối với vị trí đầu tiên để tạo thành một vòng tròn.
Một chương trình để triển khai hàng đợi vòng tròn trong C ++ được đưa ra như sau -
Ví dụ
#include <iostream> using namespace std; int cqueue[5]; int front = -1, rear = -1, n=5; void insertCQ(int val) { if ((front == 0 && rear == n-1) || (front == rear+1)) { cout<<"Queue Overflow \n"; return; } if (front == -1) { front = 0; rear = 0; } else { if (rear == n - 1) rear = 0; else rear = rear + 1; } cqueue[rear] = val ; } void deleteCQ() { if (front == -1) { cout<<"Queue Underflow\n"; return ; } cout<<"Element deleted from queue is : "<<cqueue[front]<<endl; if (front == rear) { front = -1; rear = -1; } else { if (front == n - 1) front = 0; else front = front + 1; } } void displayCQ() { int f = front, r = rear; if (front == -1) { cout<<"Queue is empty"<<endl; return; } cout<<"Queue elements are :\n"; if (f <= r) { while (f <= r){ cout<<cqueue[f]<<" "; f++; } } else { while (f <= n - 1) { cout<<cqueue[f]<<" "; f++; } f = 0; while (f <= r) { cout<<cqueue[f]<<" "; f++; } } cout<<endl; } int main() { int ch, val; cout<<"1)Insert\n"; cout<<"2)Delete\n"; cout<<"3)Display\n"; cout<<"4)Exit\n"; do { cout<<"Enter choice : "<<endl; cin>>ch; switch(ch) { case 1: cout<<"Input for insertion: "<<endl; cin>>val; insertCQ(val); break; case 2: deleteCQ(); break; case 3: displayCQ(); break; case 4: cout<<"Exit\n"; break; default: cout<<"Incorrect!\n"; } } while(ch != 4); return 0; }
Đầu ra
Kết quả của chương trình trên như sau -
1)Insert 2)Delete 3)Display 4)Exit Enter choice : 1 Input for insertion: Enter choice : 1 Input for insertion: Enter choice : 1 Input for insertion: Enter choice : 1 Input for insertion: Enter choice : 1 Input for insertion: Enter choice : 2 Element deleted from queue is : 5 Enter choice : 2 Element deleted from queue is : 3 Enter choice : 2 Element deleted from queue is : 2 Enter choice : 1 Input for insertion: 6 Enter choice : 3 Queue elements are : 7 9 6 Enter choice : 4 Exit