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 }

 

你可能感兴趣的:(Class)