b站上面看的王卓老师视频,很奈斯。


如果只是普通的出栈入栈设计,出栈部分数据后会空出一些位置,想要利用这些空出来的位置,假想一,把后面的数据往前移动。这种想法,如果数据量大的情况下,时间复杂度就大了。假想二,循环利用,让最后位置的指针下一次指向最开始的位置,实现循环。这就得利用取模运算来实现了。(Q.rear+1)%MAXQSIZE,很巧妙。并不是一个真的圆,而是我们设想成一个圆来实现。


判断是否队列元素满了,第三种做法,少用一个元素位置,rear+1 等于front指向的位置。这样的情况,对空两个指针重合,队满,就差一个元素的位置。

该博客探讨了如何在数据结构中优化栈和队列的使用。作者提出了两种策略:一是将数据向前移动以利用空余空间,但指出这在大数据量时可能导致高时间复杂度;二是采用循环队列的概念,通过取模运算实现空间的循环利用,以避免数据移动。此外,还介绍了判断队列满的方法,即当rear加1等于front时,表示队列只剩下一个元素的空间。

被折叠的 条评论
为什么被折叠?



