c++队列的问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 13:51:30
本次作业需要你实现一个用于存储整型数据的队列类(class IntQueue)。
要求如下:
 产生队列的时候可以指定队列的大小,默认的大小是最大10个元素,。
 出于简单考虑,本次作业中实现队列用数组方式就可以了。
 注意完成合适的构造函数和析构函数,不要产生内存泄漏。
 需实现的基本功能(类IntQueue的成员函数):
1. bool EnQueue (int ); 将一个整型数据放进队列,需要根据队列大小情况向用户给出提示
2. int DeQueue (); 返回位于队列第一个位置的数据,并将该数据移出队列
3. int Peek () const; 返回位于队列第一个位置的数据,但不将其移出队列
4. int GetSize () const; 返回队列现有的数据个数
5. void Display () const; 在屏幕上输出现有队列中的所有数据

#include <iostream>
#include <cstddef>
using namespace std;

class intQueue
{
public:
intQueue(size_t _size);
~intQueue();
bool EnQueue(int val);
int DeQueue();
int Peek()const;
size_t GetSize()const;
void Display()const;

private:
int* data;
const size_t size;
size_t count;
};

intQueue::intQueue(size_t _size = 10) : size(_size), count(0)
{
data = new int[size];
}

intQueue::~intQueue()
{
delete [] data;
}

bool intQueue::EnQueue(int val)
{
if(count == size)
return false;
data[count] = val;
++count;
return true;
}

int intQueue::DeQueue()
{
if(count == 0)
throw;
int temp = data[0];
for(size_t i = 0; i < count - 1; ++i)
{
data[i] = data[i + 1];
}
--count;
return temp;
}

int intQ