Data structures 从narasimha Karumachi的algo和DS书中,我无法理解解决方案

Data structures 从narasimha Karumachi的algo和DS书中,我无法理解解决方案,data-structures,queue,Data Structures,Queue,队列设置为圆形数组A[0..n-1],前面和后面的定义与往常一样。假设阵列中有n-1个位置可用于存储元素(另一个元素用于检测满/空状态)。根据后、前和n给出元素数量的公式 我得到的答案是,元素数=后部前部+1;当后>前 元件数量=前部后部+后部时为1 作者的回答是:, 元件数量=后前+1;如果后部==前部和后部 元件数量=后前+n;否则,我无法理解额外元素的行为方式。该元素的用途是什么,以及在执行入队或出队操作时如何移动其位置。当队列以循环方式存储在阵列中时,前索引点指向第一个元素,后索引点指向

队列设置为圆形数组A[0..n-1],前面和后面的定义与往常一样。假设阵列中有n-1个位置可用于存储元素(另一个元素用于检测满/空状态)。根据后、前和n给出元素数量的公式

我得到的答案是,元素数=后部前部+1;当后>前 元件数量=前部后部+后部时为1 作者的回答是:, 元件数量=后前+1;如果后部==前部和后部
元件数量=后前+n;否则,我无法理解额外元素的行为方式。该元素的用途是什么,以及在执行入队或出队操作时如何移动其位置。

当队列以循环方式存储在阵列中时,前索引点指向第一个元素,后索引点指向第一个自由位置(新元素将写入后索引)

若这些索引相等,则认为队列为空

当队列中填充了N个(数组大小)元素时,后面的索引从左边的大小到达前面的索引,并且它们变得相等-这种情况与空的情况是无法区分的。这就是为什么在这个范例中,必须留下一个空格,并且在N长度数组中只保留N-1个元素

这是值得找到的元素数量使用后方,前方和N自己-非常有用的练习。考虑后右到前(简单情况)和左(包)的情况,并建立通用公式(召回整数模运算)< /P> 我得到的答案是,元素数=后部前部+1;什么时候 后部>前部和元件数量=前部后部+后部时为1

你错了。假设您只有一个元素。前部为0,后部为1(放置下一个元素)。所以

不要考虑包装情况。
 eer...fe
后面比前面小。但我们实际上可以将数组本身连接起来

 eer...fe|eer...fe
而且很容易找到

Num = N + Rear - Front 
然后结合结果,得到在所有情况下都有效的通用公式:

Num = (N + Rear - Front) % N    //integer modulo

我相信只有少数人读过这本书(我没有读过)。因此,请给出作者所说的详细观点,可以添加一些示例+图片来解释这一点。此外,如果你想添加其他信息,请不要创建答案,编辑你的问题……你应该提供更多信息,以便任何人都能理解这个问题(即使那些没有读过这本书的人)。请记住,SO不是一个代码编写服务:您应该展示您已经做了什么来解决问题。
Num = (N + Rear - Front) % N    //integer modulo