1: //sqqueue.cpp
2:3: #include "sqqueue.h"
4:5: SqQueue::SqQueue()6: {7: front = 0;8: rear = 0;9: }10:11: SqQueue::~SqQueue()12: {13:14: }15:16: void SqQueue::ClearQueue()
17: {18: front = 0;19: rear = 0;20: }21:22: bool SqQueue::IsEmpty()
23: {24: return ( rear == front );
25: }26:27: void SqQueue::EnQueue(int item)28: {29: if( (rear + 1) % MAXSIZE == front )
30: {31: cerr<<"queue is full"<<endl;
32: exit(1);33: }34: else
35: {36: data[rear] = item;37: rear = (rear + 1) % MAXSIZE;38: }39: }40:41: void SqQueue::DeQueue()
42: {43: if(rear == front)
44: {45: cerr<<"queue is empty."<<endl;
46: exit(1);47: }48: else
49: {50: front = (front + 1) % MAXSIZE;51: }52: }53:54: int SqQueue::GetLength()
55: {56: return (rear - front + MAXSIZE) % MAXSIZE;
57: }58:59: void SqQueue::PrintQueue()
60: {61: int temp = front;
62: while(temp != rear)
63: {64: cout<<data[temp++]<<endl;65: }66: }
1: //sqqueue.h
2:3: #ifndef SQQUEUE_H_H4: #define SQQUEUE_H_H5:6: #include <iostream>7: #define MAXSIZE 108:9: using namespace std;10:11: class SqQueue
12: {13: int data[MAXSIZE];
14: int front;
15: int rear;
16: public:
17: SqQueue();18: ~SqQueue();19: void ClearQueue();
20: bool IsEmpty();
21: void EnQueue(int item);22: void DeQueue();
23: int GetLength();
24: void PrintQueue();
25: };26:27: #endif
1: //test.cpp
2: #include "sqqueue.h"
3:4: #include <iostream>5:6: using namespace std;7:8: int main(int argc, char *argv[])9: {10: SqQueue * queue = new SqQueue;
11: queue->EnQueue(1);12: queue->EnQueue(2);13: queue->EnQueue(3);14: queue->EnQueue(4);15: queue->EnQueue(5);16: queue->PrintQueue();17:18: queue->DeQueue();19: queue->PrintQueue();20: queue->DeQueue();21: queue->PrintQueue();22: queue->DeQueue();23: queue->PrintQueue();24: if(queue->IsEmpty())
25: cout<<"queue is empty."<<endl;
26: queue->ClearQueue();27: queue->PrintQueue();28: if(queue->IsEmpty())
29: cout<<"queue is empty."<<endl;
30: cout<<"length is "<<queue->GetLength()<<endl;
31:32: return 0;
33: }