#include "stdafx.h"
#include<iostream>
using namespace std;
class Myqueue//建立一个环形队列的对象的方法
{
public:
Myqueue(int queueCapacity);//创建队列
virtual ~Myqueue();//销毁队列
void clearqueue();//清空队列
bool queueempty()const;//判空队列检测
bool queuefill()const;//判满队列检测
int queuelength();//队列的长度
bool enqueue(int element);//新元素进队
bool dequeue(int &element);//首元素出队
void queuetraverse();///*遍历队列
private:
int *m_pqueue;//队列数组指针
int m_iqueue;//队列元素个数
int m_iqueuecapacity;//队列数组容量*/
int m_iHead;
int m_itail;
}
//创建队列
Myqueue::Myqueue(int queueCapacity)
{
m_iqueuecapacity=queueCapacity;
m_iHead=0;
m_itail=0;
m_iqueue=0;
m_pqueue=new int[m_iqueuecapacity];
}
//销毁队列
Myqueue::~Myqueue()
{
delete []m_pqueue;
m_pqueue=NULL;
}
//清空队列
void Myqueue::clearqueue()
{
m_iHead=0;
m_itail=0;
m_iqueue=0;
}
//判空队列检测
bool Myqueue::queueempty()const
{
return m_iqueue==0?true:false;
}
//判满队列检测
bool Myqueue::queuefill()const
{
return m_iqueue==m_iqueuecapacity?true:false;
}
//队列的长度
int Myqueue::queuelength()
{
return m_iqueue;
}
//新元素进队
bool Myqueue::enqueue(int element)
{
if(queuefill())
{return false;}
else
{m_pqueue[m_itail ]=element;
m_itail++;
m_itail=m_itail%m_iqueuecapacity;
m_iqueue++;
return true;
}
}
//首元素出队
bool Myqueue::dequeue(int &element)
{
if(queueempty())
{
return false;
}
else
{
element=m_pqueue[m_iHead];
m_iHead++;
m_iHead=m_iHead%m_iqueuecapacity;
m_iqueue--;
return true;
}
}
void Myqueue::queuetraverse()
{
for(int i=m_iHead;i<m_iqueue+m_iHead;i++)
{
cout<<m_pqueue[i%m_iqueue]<<endl;
}
}
int main(void)
{
Myqueue *p=new Myqueue(4);
p->enqueue(12);
p->enqueue(22);
p->queuetraverse();
delete p;
p=NULL;
system("pause");
return 0;
}
1>c:\users\administrator\documents\visual studio 2010\projects\a002\a002\a002.cpp(28): error C2533: “Myqueue::{ctor}”: 构造函数不能有返回类型
1>c:\users\administrator\documents\visual studio 2010\projects\a002\a002\a002.cpp(103): error C2264: “Myqueue::Myqueue”: 函数定义或声明中有错误;未调用函数
帮错误原因贴出来