假设以数组q[m]存放循环队列中的元素,同时设置一个标志tag,以tag==0和tag==1来区分在队头指针(front)和队尾指针(rear)相等时,队列状态是“空”还是“满”。编写与此结构相应的插
时间: 2023-04-27 09:04:06 浏览: 144
环形队列,用front和rear作为对头和队尾指针,tag表示队列是空还是不空
入和删除操作的算法。
当tag==时,队列状态为“空”,当tag==1时,队列状态为“满”。
插入操作算法:
1. 判断队列是否已满,即判断tag是否为1,如果为1则队列已满,插入失败,返回。
2. 将元素插入队尾,即将元素赋值给q[rear],同时将rear指针后移一位。
3. 判断rear指针是否已经到达队列末尾,如果到达末尾,则将rear指针指向队列头部,即rear=。
4. 判断队列是否为空,即判断tag是否为,如果为则将tag置为1,表示队列已经有元素。
删除操作算法:
1. 判断队列是否为空,即判断tag是否为,如果为则队列为空,删除失败,返回。
2. 将队头元素取出,即将q[front]赋值给一个临时变量temp。
3. 将队头指针front后移一位。
4. 判断front指针是否已经到达队列末尾,如果到达末尾,则将front指针指向队列头部,即front=。
5. 判断队列是否已空,即判断front指针是否等于rear指针,如果相等,则将tag置为,表示队列已经为空。
6. 返回临时变量temp,表示删除成功。
阅读全文