用“渐进式”的方式打开队列的顺序存储实现
队列的顺序存储静态分配[!bug] 1️⃣方案一初步实现需要两个指针front 指向队头元素rear 指向队尾元素的下一个位置。队空front rear入队rear出队front队满rear MaxSize代码问题“假溢出”rear 已经到达 MaxSize 且 front 也前进了那么 front 前的空间明明空着却无法再入队。[!bug] 方案二初步循环队列解决“假溢出”队空front rear入队rear (rear1)%MaxSize;出队front (front1)%MaxSize;队满rear front循环后指针重合代码问题无法区分队满与队空二者共用一个条件[!success] 方案三保持 rear 始终为空区分队空/队满5. 队空front rear6. 入队rear (rear1)%MaxSize;7. 出队front (front1)%MaxSize;8. 队满(rear1)%MaxSize front缺点牺牲一个队列单元来区分队空队满实际在使用的单元个数为MaxSize-1[!success] 方案四额外定义 size 记录元素个数9. 队空size 010. 入队rear (rear1)%MaxSize; size;11. 出队front (front1)%MaxSize; size--12. 队满size MaxSize优点更直观、空间利用率 100%且也完美解决了以上两大问题。[!success] 方案五设置 tag 记录上次操作tag上次操作是入队则为 1上次操作是出队则为 0。队空Q.front Q.rear tag 0入队rear (rear1)%MaxSize; tag 1;出队front (front1)%MaxSize; tag 0队满Q.front Q.rear tag 1优点空间利用率 100%。 总结抓住两个核心矛盾“假溢出”、队空/队满的区分问题。