现在的位置: 首页 > 综合 > 正文

队列

2012年04月25日 ⁄ 综合 ⁄ 共 1044字 ⁄ 字号 评论关闭

#include <iostream.h>
#include <stdlib.h>

typedef int DataType;
const int MaxQSize = 50;

class Queue
{
 private:
  int front;
  int rear;
  int count;
  DataType qlist[MaxQSize];
 public:
  Queue(void);
  void QInsert(const DataType& item);
  DataType QDelete(void);
  void ClearQueue(void);

  DataType QFront(void) const;

  int QLength(void) const;
  bool QEmpty(void) const;
  bool QFull(void) const;
};

Queue::Queue(void):front(0), rear(0), count(0)
{}

void Queue::QInsert(const DataType& item)
{
 if (count == MaxQSize)
 {
  cerr << "Queue overflow!" << endl;
  exit(1);
 }

 count++;
 qlist[rear] = item;
 rear = (rear + 1) % MaxQSize;
}

DataType Queue::QDelete(void)
{
 DataType temp;

 if (count == 0)
 {
  cerr << "Deleting from an empty queue!" << endl;
  exit(1);
 }

 temp = qlist[front];
 count--;
 front = (front + 1) % MaxQSize;

 return temp;
}

int Queue::QLength(void) const
{
 return count;
}

void Queue::ClearQueue(void)
{
 front = 0;
 rear = 0;
 count = 0;
}

bool Queue::QEmpty(void) const
{
 if (count == 0)
 {
  return true;
 }

 return false;
}

bool Queue::QFull(void) const
{
 if (count == MaxQSize)
 {
  return true;
 }

 return false;
}

DataType Queue::QFront(void) const
{
 return qlist[front];
}

抱歉!评论已关闭.