Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;检查队列是否已满?_C++_Queue - Fatal编程技术网

C++ C++;检查队列是否已满?

C++ C++;检查队列是否已满?,c++,queue,C++,Queue,我的问题:队列中将有2个指针。指向队列后部的指针R。指向队列前面的指针F。从队列中删除元素时,队列中的第一个元素将被删除,因此,F=F-1;当向队列中添加新元素时,它将被添加到队列中的最后一个位置,因此R=R+1 假设我声明一个固定的数组大小为5。R和F可以在队列中扭曲(圆形数组)。如何检查队列是否已满 检查队列是否已满的方法: 情况1-当F指向数组时,第一个元素&R指向 数组最后一个元素=队列已满 案例2:当F-1=R时,则队列已满 我的逻辑正确吗?如何在编码中实现?您的队列已满检查是否可以:

我的问题:队列中将有2个指针。指向队列后部的指针R。指向队列前面的指针F。从队列中删除元素时,队列中的第一个元素将被删除,因此,F=F-1;当向队列中添加新元素时,它将被添加到队列中的最后一个位置,因此R=R+1

假设我声明一个固定的数组大小为5。R和F可以在队列中扭曲(圆形数组)。如何检查队列是否已满

检查队列是否已满的方法:

情况1-当F指向数组时,第一个元素&R指向 数组最后一个元素=队列已满

案例2:当F-1=R时,则队列已满


我的逻辑正确吗?如何在编码中实现?

您的队列已满检查是否可以:

void enqueue(int val){ 
if (Queue is full, do this){ 
//... What should I write here?  ...

}else{ 
if(empty()){ 
   r = f = 0; 
}else{ 
   r++; 
   int arr_length = (sizeof(arr)/sizeof(arr[0])) - 1; 
if(r == arr_length) 
   r = 0; 
} 
   arr[r] = val; 
} 
} 
满时,您不能排队 所以,如果您不能排队(当满时),最好以book的形式返回,否则返回false,否则返回true,即如果您可以排队。 这将有助于呼叫排队或退队的呼叫方


或者,你可以使用std::queue或std::array

而不是重新发明你可以使用的轮子。恐怕你的问题现在还不清楚。您是否在询问如何在内存中表示队列?或者,您是否已经解决了这个问题(然后将信息添加到问题中),并且您正在询问关于在该表示上实现特定操作的问题?@PaulR取决于目标是“拥有队列”还是“学习编程数据结构”。我认为您只使用了一个
=
而不是
=
@Agnew:是的,我无法从这个问题判断这是家庭作业还是实际项目。问题的质量似乎有点太高,不像通常的家庭作业类型的问题,所以我认为OP实际上可能被误导,试图从头开始实现队列。
Case 1 - When F is pointing at array first element & R is pointing at array last element = Queue is full.

Case 2: When F - 1 = R. Then Queue is full.