犯了错误,自己思考问题不足,分析的不透彻,感谢csdn赵老师的教诲:只有自己不断的调试,才能获得分析问题,解决问题的能力。
/******************************************动手去做*************************************************/
求取rear下一个位置:
rear = (rear+1) % MaxSize; //rear = (rear==MaxSize)?0:rear++
#include <iostream>
using namespace std;
#define MaxSize 5
typedef int DataType;
class Myqueue
{
public:
Myqueue();
void AddQueue(DataType element);
DataType DeQueue(int element);
private:
int front;
int rear;
int count;
int data[MaxSize];
};
Myqueue::Myqueue()
{
front=rear=count=0;
}
void Myqueue::AddQueue(DataType element)
{
data[rear]=element;
rear = (rear+1) % MaxSize;
count++;
if ((count==MaxSize))
{
cout<<"full"<<endl;
front=rear=0;
}
}
DataType Myqueue::DeQueue(int element)
{
element = data[front];
front = (front+1) % MaxSize;
count--;
return element;
}
int main()
{
Myqueue my;
for (int i=0;i<3;i++)
{
my.AddQueue(i);
}
for (int j=0;j<3;j++)
{
cout<<my.DeQueue(j)<<endl;
}
return 0;
}
有错误请指出来,谢谢!