用c++编写一个程序,实现循环队列的各种基本运算,并在此基础上设计一个主程序完成如下功能: 初始化

用c++编写一个程序,实现循环队列的各种基本运算,并在此基础上设计一个主程序完成如下功能:初始化队列Q。判断队列Q是否非空。依次进队列元素a,b,c。出队一个元素,输出该... 用c++编写一个程序,实现循环队列的各种基本运算,并在此基础上设计一个主程序完成如下功能:
初始化队列Q。
判断队列Q是否非空。
依次进队列元素a,b,c。
出队一个元素,输出该元素。
输出队列Q的元素个数。
依次进入队列元素d,e,f。
输出出队序列。
释放队列。
展开
 我来答
匿名用户
2015-04-21
展开全部
#include<iostream>

using namespace std;

const int Max=100;

template <class T> 
class MyQueue
{
    private:
            T *aa;
            unsigned int front;
            unsigned int tail;
    public :
           void init();
           bool isEmpty();
           T DeQueue();
           void EnQueue(const T a);
           unsigned int size();
           void destroy();
                  
};

template <class T> 
void MyQueue<T>::init()
{
      aa = new T[Max+1];
      front=0;
      tail=0;
      return;    
};

template <class T> 
bool MyQueue<T>::isEmpty()
{
      if(front==tail-1) return true;
      else     return false;
};


template <class T> 
unsigned int MyQueue<T>::size()
{
      return tail-front;
};


template <class T> 
void MyQueue<T>::EnQueue(const T a)
{
      tail=tail+1;
      aa[tail]=a;    
};

template <class T> 

T MyQueue<T>::DeQueue()
{
       
      front=front+1;
      T t=aa[front]; 
      cout << t << endl;
      return t;     
};

template <class T> 
void MyQueue<T>::destroy()
{
       
      delete[] aa;
};

int main()
{
    
    MyQueue<char> st;
    st.init();
    if(st.isEmpty()) cout << "MyQueue is empty." << endl;
    else cout <<"MyQueue is not empty." << endl;
    st.EnQueue('a');
    st.EnQueue('b');
    st.EnQueue('c');
    st.DeQueue();
    cout << st.size() << endl;
    st.EnQueue('d');
    st.EnQueue('e');
    st.EnQueue('f'); 
    cout<< st.size()<<endl;
    while(!st.isEmpty()) st.DeQueue();
    st.destroy();
    system("pause");
    return 0;
}
更多追问追答
追问
求助一件事情。你会写opengl程序么?用c++。。
有偿的,。150以内都可以接受
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式