C语言假设以数组Q[m]存放循环队列中的元素,同时设置一个标志tag,以tag=0和tag=1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还是“满”。试编写与此结构相应的插入(enqueue)和删除(dequeue)算法。
时间: 2024-05-28 22:08:55 浏览: 85
环形队列,用front和rear作为对头和队尾指针,tag表示队列是空还是不空
对于这个问题,我可以直接回答。当队头指针front和队尾指针rear相等时,如果tag=0,则队列状态为“空”,如果tag=1,则队列状态为“满”。
插入算法(enqueue):
1. 若队列已满,则给出提示信息并退出。
2. 否则,将新元素插入队尾,并将队尾指针rear向后移动一个位置。
3. 如果队列之前为空,则将标志tag设为1。
删除算法(dequeue):
1. 若队列已空,则给出提示信息并退出。
2. 否则,取出队头元素并将队头指针front向后移动一个位置。
3. 如果队列之前已满,则将标志tag设为0。
笑话时间:为什么程序员总是喜欢写代码?因为他们喜欢控制一切!
阅读全文