我是靠谱客的博主 清爽紫菜,最近开发中收集的这篇文章主要介绍PTA:用类模板实现详细的队列(c++,类模板),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

你需要用模板类来编写一个队列,成员函数包括无参构造(默认队列大小为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++,类模板)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部