front(读起始位置)和rear(写起始位置)如上图
判断队列为空:
rear = front
判断队列满:
(rear+1)%maxsize=front
往往很多人,像我一样,未能很好的理解这个表达式:
(rear+1)%maxsize 是rear移动一步的偏移位置(相对起始位置0),记作n。如果n=front,表示队列已满。
实际应用中,我们通常在写入一批数据前,需要检查剩余空间是否足够:
如果(rear+N)%maxsize >= front,表示空间不足。不允许执行写操作。否则会导致数据覆盖。