计算机二级循环队列希望具体的过程

2025-05-22 13:10:02
推荐回答(1个)
回答1:

循环队列 Q[0:m]是首先 队列一开始是 front = rear = m,所有队列都是x,表示无效数据。【1】【2】【3】【4】.......【m-1】【m】【x】【x】【x】【x】.......【x 】【 x 】如果插入一个数据 【a】表示有效数据那么 front = 1, rear = m 【1】【2】【3】【4】.......【m-1】【m】【a】【x】【x】【x】....... 【 x 】【x】接着在插入一个数据 【b】表示有效数据那么 front = 2, rear = m 【1】【2】【3】【4】.......【m-1】【m】【a】【b】【x】【x】.......【 x 】【x】我们看到 front < rear,这时候有两个数据,你可以想象成 是在rear后面插入到 【m+1】和【m+2】位置,意味着 front在此时的意义相当于 front + m, 因此 数据个数是 front+ m - rear = 2,这就是为什么要计入m,当 front rear。接下来我们删除(pop)一个数据,那么 front = 2, rear = 1 【1】【2】【3】【4】.......【m-1】【m】【x】【b】【x】【x】.......【x 】【x】这时候数据总个数是1, front - rear = 1;由于 front > rear ,这时候就不需要加 m了。