#include <Arduino.h>
// Khai báo cấu trúc cho phần tử trong hàng đợi
struct QueueElement {
char data[20]; // Chuỗi có tối đa 20 ký tự
};
// Khai báo cấu trúc cho hàng đợi
struct Queue {
QueueElement elements[6]; // Hàng đợi chứa tối đa 6 phần tử
int front;
int rear;
};
// Khởi tạo hàng đợi
void initQueue(Queue* q) {
q->front = 0;
q->rear = -1;
}
// Kiểm tra hàng đợi có đầy không
bool isQueueFull(Queue* q) {
return (q->rear == 5);
}
// Thêm phần tử vào hàng đợi
void enqueue(Queue* q, const char* str) {
if (isQueueFull(q)) {
Serial.println("Queue is full. Cannot enqueue.");
return;
}
q->rear++;
strcpy(q->elements[q->rear].data, str);
}
// In nội dung của hàng đợi
void printQueue(Queue* q) {
for (int i = q->front; i <= q->rear; i++) {
Serial.print("Nhận chuỗi: ");
Serial.println(q->elements[i].data);
Serial.print("Số phần tử có thể đọc: ");
Serial.println(q->rear - i);
Serial.print("Không gian khả dụng còn lại: ");
Serial.println(6 - (q->rear - i));
Serial.println();
}
}
void setup() {
Serial.begin(9600);
Queue queue;
initQueue(&queue);
enqueue(&queue, "CT05-Hello");
enqueue(&queue, "DT04-Hi");
enqueue(&queue, "AT17-Welcome");
printQueue(&queue);
}
void loop() {
// Không cần thực hiện gì trong vòng lặp loop
}