Arduino 队列实现:使用数组和指针创建高效队列
在 Arduino 上创建一个队列可以使用数组和指针来实现。下面是一个简单的示例代码:\n\nc\n#define QUEUE_SIZE 10\n\nint queue[QUEUE_SIZE];\nint front = 0;\nint rear = -1;\nint itemCount = 0;\n\nvoid enqueue(int data) {\n if (itemCount >= QUEUE_SIZE) {\n Serial.println("队列已满,无法添加新元素!");\n return;\n }\n \n if (rear == QUEUE_SIZE - 1) {\n rear = -1;\n }\n \n queue[++rear] = data;\n itemCount++;\n}\n\nint dequeue() {\n if (itemCount <= 0) {\n Serial.println("队列为空,无法删除元素!");\n return -1;\n }\n \n int data = queue[front++];\n \n if (front == QUEUE_SIZE) {\n front = 0;\n }\n \n itemCount--;\n return data;\n}\n\nvoid setup() {\n Serial.begin(9600);\n \n enqueue(10);\n enqueue(20);\n enqueue(30);\n \n Serial.println(dequeue()); // 输出 10\n Serial.println(dequeue()); // 输出 20\n Serial.println(dequeue()); // 输出 30\n}\n\nvoid loop() {\n // 不需要在循环中做任何事情\n}\n\n\n这个示例代码创建了一个大小为 10 的队列,并实现了 enqueue() 和 dequeue() 函数来添加和删除元素。当队列已满时,enqueue() 函数会输出错误信息,并且不会添加新的元素。当队列为空时,dequeue() 函数会输出错误信息,并且返回 -1。\n\n在 setup() 函数中,我们使用 enqueue() 函数向队列中添加了三个元素,并使用 dequeue() 函数逐个删除并输出元素。你可以根据需要修改这些函数来适应你的项目。
原文地址: https://www.cveoy.top/t/topic/pN8s 著作权归作者所有。请勿转载和采集!