队列的概念及相关操作
- 加入一个元素,rear+1,删除一个元素front+1,当rear到达末端时再加入一个元素,可以从0重新开始加入,形成顺环队列
- 顺环队列的缺点:堆栈空和满的判别条件相同,不能区分空和满,出现这种情况的根本原因在于,如上图顺环队列中数组大小为n,front与rear的取值范围为[0,n-1,],它们的相对位置关系(距离差)有n种,即0,1,2,3,4,5.而在大小为n线性队列中,如上图队列装载元素情况有7种:0(空队列),1(一个元素),2,3,4,5,6共n+1种,显然存在矛盾
- 在顺环队列中,当rear到达末端,要继续加入元素时,rear会变为0,此时需要未加入元素前的rear+1对队列大小求余,同理当front到达末端时,要继续删除元素,也需要做求余
- front指针不能指向链表的末尾,否则无法完成删除操作