Queue class

 1 enum Error_code {
 2     succeed,
 3     overflow,
 4     underflow
 5 };
 6 
 7 typedef int Queue_entry; // Now queue element is int
 8 
 9 const int max_queue = 10;
10 
11 class Queue {
12 public:
13     Queue();
14     ~Queue();
15 
16     bool empty() const;
17     Error_code append(const Queue_entry & item);
18     Error_code serve();
19     Error_code retrieve(Queue_entry & item) const;
20     int size() const;
21 
22 private:
23     int count;
24     int front, rear;
25     Queue_entry entry[max_queue];
26 };
27 
28 Queue::Queue() {
29     count = 0;
30     front = 0;
31     rear = max_queue - 1;
32 }
33 
34 Queue::~Queue() {
35 
36 }
37 
38 bool Queue::empty() const {
39     if (count == 0)
40         return true;
41     return false;
42 }
43 
44 Error_code Queue::append(const Queue_entry & item) {
45     if (count == max_queue)
46         return overflow;
47     count++;
48     rear = ((rear+1)==max_queue) ? 0 : (rear+1);
49     entry[rear] = item;
50     return succeed;
51 }
52 
53 Error_code Queue::serve() {
54     if (count == 0)
55         return underflow;
56     count--;
57     front = ((front+1) == max_queue) ? 0 : (front+1);
58     return succeed;
59 }
60 
61 Error_code Queue::retrieve(Queue_entry & item) const {
62     if (count <= 0)
63         return underflow;
64     item = entry[front];
65     return succeed;
66 }
67 
68 int Queue::size() const{
69     return count;
70 }

 

posted on 2014-04-18 12:31  aoun  阅读(183)  评论(0编辑  收藏  举报