您的位置:首页 > 其它

编写一个程序,实现顺序环形队列的各种基本运算。

2013-11-14 21:01 1036 查看
完成如下功能:

(1)初始化队列q;

(2)判断队列q是否非空;

(3)依次进队元素a,b,c;

(4)出队一个元素,并输出该元素;

(5)输出队列q的元素个数;

(6)依次进队列元素d,e,f;

(7)输出队列q的元素个数;

(8)输出出队序列;

(9)释放队列。

代码:

#include"iostream"
#define MaxSize 50
using namespace std;
class queue{
private:
char data[MaxSize];
int front,rear;
static int count;
public:
void initqueue(queue *&);
void destroyqueue(queue *&);
bool queueempty(queue *);
bool enqueue(queue *&,char);
static bool dequeue(queue *&);
static bool outqueue(queue *);
static int getcount(){ return count; }
};

int queue::count=0;

void queue::initqueue(queue *&q)
{
q=new queue;
q->front=q->rear=0;
}

void queue::destroyqueue(queue *&q)
{
free(q);
}

bool queue::queueempty(queue *q)
{
return(q->front==q->rear);
}

bool queue::enqueue(queue *&q,char e)
{
if((q->rear+1)%MaxSize==q->front)
return false;
q->rear=q->rear+1;
q->data[q->rear]=e;
count++;
return true;
}

bool queue::dequeue(queue *&q)
{
if(q->front==q->rear)
return false;
q->front=q->front+1;
count--;
return true;
}

bool queue::outqueue(queue *q)
{
if(q->front==q->rear)
{
return false;
}
q->front++;
while(q->front!=q->rear)
{
cout << q->data[q->front] << "  " ;
q->front++;
count--;
}
cout << endl;
return true;
}

void main()
{
queue *q;
q->initqueue(q);
q->queueempty(q);
q->enqueue(q,'a');
q->enqueue(q,'b');
q->enqueue(q,'c');
q->dequeue(q);
cout << q->getcount() << endl;
q->enqueue(q,'d');
q->enqueue(q,'e');
q->enqueue(q,'f');
cout << q->getcount() << endl;
q->outqueue(q);
q->destroyqueue(q);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐