循环队列的基本操作
【问题描述】根据循环队列的类型定义,完成循环队列的基本操作。主函数中测试队列。
【输入形式】一个整数m,表示入队的元素个数
【输出形式】第一行:输出队头元素 第二行:队列中元素依次出队以空格间隔
【样例输入】5
【样例输出】
1
1 3 5 7 9
【样例输入】0
【样例输出】
empty!
#include <iostream>
using namespace std;
#include <stdlib.h>
#define MAX 100
struct circleQueue {
int data[MAX];
int front,rear;
int count;
};
//----------------------
void initQueue(circleQueue &Q){
Q.front=Q.rear=0;
Q.count=0;
}//初始化
void enQueue(circleQueue &Q,int n){
Q.data[Q.rear]=n;
Q.rear++;
Q.count++;
}//进队列
int queueEmpty(circleQueue Q){
return Q.count==0;
}//判断是否为空
int getFront(circleQueue Q){
if(!queueEmpty(Q))return Q.data[Q.front];
else {
cout<<"empty!";
exit(0);
}
}//获取队首元素,若为空,输出empty!并结束程序
int deQueue(circleQueue &Q){
int e=Q.data[Q.front];
Q.front++;
Q.count--;
return e;
}//出队列
//----------------------
int main() {
int m;
cin>>m;
circleQueue Q;
initQueue(Q);
for(int i=1; i<=m; i++) {
enQueue(Q,i*2-1);
}
cout<<getFront(Q)<<endl;
while(!queueEmpty(Q)) {
cout<<deQueue(Q)<<" ";
}
}
记录一些数据结构学习过程的习题代码,便于日后查看。如有错误,欢迎交流指正。
标签:count,队列,int,circleQueue,基本操作,数据结构,rear From: https://www.cnblogs.com/zhuannnn/p/17582185.html