循环队列代码模板

/*
循环队列,head和tail指针超出数组范围之后重置为0,循环队列head和tail之间至少有一个空位。
*/
#include <iostream>
using namespace std;
const int MAXN = 5;
int q[MAXN];
int head, tail;
// 初始化
void initialize() {
    
    
	head = tail = 0;
}
// 判满
bool isFull() {
    
    
	return head == (tail + 1) % MAXN;
}
// 判空
bool isEmpty() {
    
    
	return head == tail;
}
// 入队
void enQueue(int x) {
    
    
	if (isFull()) {
    
    
		cout << "Error" << endl;
	}
	q[tail] = x;
	if (tail + 1 == MAXN) {
    
    
		tail = 0;
	} else {
    
    
		tail++;
	}
}
// 出队
int deQueue() {
    
    
	if (isEmpty()) {
    
    
		cout << "Error" << endl;
	}
	int x = q[head];
	if (head + 1 == MAXN) {
    
    
		head = 0;
	} else {
    
    
		head++;
	}
	return x;
}

猜你喜欢

转载自blog.csdn.net/WxqHUT/article/details/108930978