概述
你需要用模板类来编写一个队列,成员函数包括无参构造(默认队列大小为10)、有参构造、析构函数、入队、出队、获得队头元素函数、打印队列元素函数。注意队列空出一个存储空间用于判断队满队空。
函数接口定义:
template<typename T>
class RQueue
void enqueue(T data)
void dequeue()
T getHeadElem()
bool isfull()
bool isempty()
void show()//队列没元素时,不打印任何
unsigned int elem_available()//返回队列元素数量rear-front
裁判测试程序样例:
#include <iostream>
using namespace std;
/* 请在这里填写答案 */
int main()
{
RQueue<float> rq;
float a;
for (int i = 0; i < 9; i++) {
cin >> a;
rq.enqueue(a);
}
rq.show();
cout << endl;
for (int i = 0; i < 6; i++)//出队6个元素
{
cout << rq.getHeadElem() << " ";
rq.dequeue();
}
cout << endl;
rq.show();
return 0;
}
输入样例:
在这里给出一组输入。例如:
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9
输出样例:
在这里给出相应的输出。例如(注意空格):
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9
1.1 2.2 3.3 4.4 5.5 6.6
7.7 8.8 9.9
template<typename T>
class RQueue{
private:
T a[10];
int count;
public:
RQueue(){
for(int i=0;i<10;i++){
a[i]=0;
}
count=0;
}
void enqueue(T data){
if(count!=10){
a[count++]=data;
}
}
void dequeue(){
for(int i=1;i<count;i++){
a[i-1]=a[i];
}
count--;
}
T getHeadElem(){
return a[0];
}
bool isfull(){
if(count==10){
return true;
}
return false;
}
bool isempty(){
if(count==0){
return true;
}
return false;
}
void show(){
if(count!=0){
for(int i=0;i<count;i++){
cout<<a[i]<<" ";
}
}
}//队列没元素时,不打印任何
unsigned int elem_available(){
return count;
}
};//返回队列元素数量rear-front
最后
以上就是清爽紫菜为你收集整理的PTA:用类模板实现详细的队列(c++,类模板)的全部内容,希望文章能够帮你解决PTA:用类模板实现详细的队列(c++,类模板)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复