Skip to content

栈与队列

循环队列

  • 对于一个容量为 \(m\) 的循环队列

  • 实际存储空间为 \(m+1\)

  • 初始状态 / 判空条件: \(rear ** front\)

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

  • 入队操作:

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

共享栈

  • 对于一个容量为\(m\)的共享栈

  • 初始状态 / 判空条件: \(top_0**-1\ \land\ top_1**m\)

  • 判满条件:\(top_1-top_0**1\)

  • 入栈操作:

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