b站上面看的王卓老师视频,很奈斯。
如果只是普通的出栈入栈设计,出栈部分数据后会空出一些位置,想要利用这些空出来的位置,假想一,把后面的数据往前移动。这种想法,如果数据量大的情况下,时间复杂度就大了。假想二,循环利用,让最后位置的指针下一次指向最开始的位置,实现循环。这就得利用取模运算来实现了。(Q.rear+1)%MAXQSIZE,很巧妙。并不是一个真的圆,而是我们设想成一个圆来实现。
判断是否队列元素满了,第三种做法,少用一个元素位置,rear+1 等于front指向的位置。这样的情况,对空两个指针重合,队满,就差一个元素的位置。