# 循环队列

  • 对于一个容量为 mm 的循环队列

  • 实际存储空间为 m+1m+1

  • 初始状态 / 判空条件: rear==frontrear == front

  • 判满条件:(rear+1)%m==front(rear+1)\%m==front

  • 入队操作:

伪代码
新元素加入队尾;
队尾指针 + 1;
  • 出队操作:
伪代码
访问队头元素;
队头指针 + 1;
  • 任意时刻队列内包含的元素数量为: (m+rearfront)%m(m+rear-front)\%m

# 共享栈

  • 对于一个容量为mm 的共享栈

  • 初始状态 / 判空条件: top0==1top1==mtop_0==-1\ \land\ top_1==m

  • 判满条件:top1top0==1top_1-top_0==1

  • 入栈操作:

伪代码
top0 先 + 1 再赋值;
top1 先 - 1 再赋值;
  • 出栈操作:
伪代码
top0-1;
top1+1;
  • 任意时刻队列内包含的元素数量为: ...