队列
数组实现
1.循环队列基本操作
描述
题目描述:
请定义一个顺序队列,可以对队列进行“入队”、“出队”、“清空队列”、“获取队首元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,队列的元素为字母, 队列的最大元素个数为100。
输入描述:
输入各个命令,它们对应的格式如下: 入队:E a,a代表入队的元素,这里E和元素之间用空格分隔。 清空队列:C;获取队头元素:当输入的命令为D时,输出出队的元素值; 当输入的命令是G时,输出当前队首元素值; 如果没有元素可出队或可取, 输出None;当输入的命令是Q时结束程序。
#include <iostream>
#include <string>
using namespace std;
char data[101];
//队尾
int front = 100;
//队头
int rear =100;
void EnQue(char c)
{
//TODO
if(((rear + 1) % 101) != front ){
rear++;
data[rear%101]=c;
}
}
char DeQue()
{
//只要判断头尾不相等即可出队
if((front % 100) != rear ){
return data[(front++)%100];
}
}
char GetQue()
{
//TODO
return data[rear % 101];
}
void del()
{
front =rear =100;
}
int main()
{
char t;
char c;
while(cin >> t && t !='Q')
{
switch(t)
{
case 'E': cin >>c;
EnQue(c);
break;
case 'D': c =DeQue();
if( c!=0)
cout <<c<<endl;
else
cout <<"None"<<endl;
break;
case 'G': c =GetQue();
if( c!=0)
cout <<c<<endl;
else
cout <<"None"<<endl;
break;
case'C':
del();
break;
}
}
}