#include <stdio.h>
#define maxsize 50
typedef struct {
int data[maxsize];
int front, rear;
}SeQueue;
void initqueue(SeQueue& Q) { //初始化
Q.rear = Q.front = 0;
for (int i = 0; i <= 25; i++) {
Q.data[Q.rear] = i;
Q.rear = (Q.rear + 1) % maxsize;
printf("%d\n", Q.data[i]);
}
}
bool isempty(SeQueue& Q) { //判队空
if (Q.rear == Q.front)
return true;
else return false;
}
bool enqueue(SeQueue& Q, int& x) { //入队操作
if ((Q.rear + 1) % maxsize == Q.front)
return false;
Q.data[Q.rear] = x;
Q.rear = (Q.rear + 1) % maxsize; //队尾指针进1
return true;
}
bool getelem(SeQueue& Q, int& x) { //取队头元素
if (Q.rear == Q.front)
return false;
x=Q.data[Q.front];
}
bool dequeue(SeQueue& Q, int& x) { //出队操作
if (Q.rear == Q.front) return false;
x = Q.data[Q.front];
Q.front = (Q.front + 1) % maxsize; //队头指针进1
return true;
}
int main()
{
SeQueue Q;
int x = 4;
initqueue(Q);
if (isempty(Q))printf("队空\n");
if (enqueue(Q, x))printf("入队成功,此元素为%d\n", x);
if (dequeue(Q, x))printf("出队成功,此元素为%d\n", x);
if (getelem(Q, x))printf("队头元素为%d\n", x);
}
循环队列的基本操作
最新推荐文章于 2022-11-13 20:21:25 发布