判断循环队列是满还是空

判断一个循环队列是满还是空的方法:

方法一:设置一个标志tag,当每一次入队的时候,令tag = 1;当出队的时候,tag = 0;所以,如果在tag = 1后,Q.front = Q.rare,则说明是因为插队而引起的,所以是因为队列满了;反之,tag = 0时,Q.front = Q.rare,则说明是因为出队引起的,由此判断是队列空了;

方法二:用两个定义区分对列是满的还是空的,定义当Q.front = Q.rare时,表示队列空了;定义当Q.front = (rare + 1)%SIZE 或(front == -1 &&rare = SIZE -2)时是满的,也就是front指向队头,rare指向队尾,front在rare的下一位置即环状位置的下一个位置,这样下来实际使用的空间是SIZE – 1;

方法三:很简单的方法,就是记一下进入队列的数number,当进入的个数 = SIZE则说明是满的,当进入个数 = 0,则是空的;

 

你可能感兴趣的:(数据结构,tag,循环队列)