队列的顺序存储结构与操作
来源:互联网 发布:淘宝手机端显示宝贝 编辑:程序博客网 时间:2024/03/29 01:42
题目描述:
请定义一个顺序队列,可以对队列进行“入队”、“出队”、“清空队列”、“获取队首元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,队列的元素为字母, 队列的最大元素个数为100。
输入样例:
E aGCE bDDQ
输出样例:
abNone
输入描述:
输入各个命令,它们对应的格式如下:
入队:E a,a代表入队的元素,这里E和元素之间用空格分隔。
清空队列:C
获取队头元素:G
队头元素出队列:D
当输入的命令为Q时,程序结束。
输出描述:
当输入的命令为D时,输出出队的元素值;
当输入的命令是G时,输出当前队首元素值;
如果没有元素可出队或可取,请输出None;如果入队时,队列已满,输出Queue Full;
输出的元素各占一行。
#include<iostream>
using namespace std;
const int maxsize=100;
class CirQuene
{
public:
CirQuene(){front=rear=-1;}
~CirQuene(){}
void EmptyCirQuene(){front=rear=-1;}
void EnQuene(char x);
void DeQuene();
char GetQuene();
int Empty();
private:
char data[maxsize];
int front,rear;
};
int CirQuene::Empty()
{
if(front==rear)
return 1;
else
return 0;
}
void CirQuene::EnQuene(char x)
{
if((rear+1)%maxsize==front)
cout<<"Queue Full"<<endl;
rear=(rear+1)%maxsize;
data[rear]=x;
}
void CirQuene::DeQuene()
{
if(rear==front)
{
cout<<"None"<<endl;
}
else
{
front=(front+1)%maxsize;
cout<<data[front]<<endl;
}
}
char CirQuene::GetQuene()
{
if(rear==front)
{
cout<<"None"<<endl;
}
else
{
int i=(front+1)%maxsize;
return data[i];
}
return 0;
}
int main()
{
CirQuene C;
char ch,item;
while(cin>>ch&&ch!='Q')
{
if(ch=='E')
{
cin>>item;
C.EnQuene(item);
}
if(ch=='D')
{
C.DeQuene();
}
if(ch=='G')
{
cout<<C.GetQuene()<<endl;
}
if(ch=='C')
{
C.EmptyCirQuene();
}
}
return 0;
}
- 队列的顺序存储结构与操作
- 队列的顺序存储结构与操作
- 栈的顺序存储结构与操作
- 栈的顺序存储结构与操作
- 队列的链式存储结构与操作
- 队列的链式存储结构与操作
- 队列的顺序存储结构
- 队列的顺序存储结构
- 队列的顺序存储结构
- 队列的顺序存储结构
- 队列的顺序存储结构
- 队列的顺序存储结构
- JAVA实现队列的顺序存储结构和操作
- 循环队列操作的实现-顺序存储结构
- 队列的顺序存储结构---循环队列
- 队列的顺序存储结构(循环队列)
- 数据结构(队列):队列的顺序存储结构
- 队列的定义与操作(顺序存储)
- 用 jstl 取 Date(java.util.Date) 的年的值 和月的值
- 表达式括号匹配
- DRUPAL 分页
- 随机过程给定种子,得到的结果总是一样的
- 转: JNI设计实践之路
- 队列的顺序存储结构与操作
- 无法正确获取屏幕尺寸【一个诡异的问题】
- JS CSS 压缩工具(GUI界面)
- 队列的链式存储结构与操作
- 数组常用方法的总结
- Visual Studio 11:色彩在RC版中又回归了
- 动态折半查找
- .net 程序的破解
- HTML5+CSS3+jQuery制作视频播放器完全指南