1 #include<iostream>
2 using namespace std;
3
4
5 class Queue
6 {
7 int front,rear,size,capacity;
8 int* array;
9
10 public:
11 Queue(int cap);
12 ~Queue();
13 int get_front();
14 int get_rear();
15 void en_queue(int n);
16 void de_queue();
17 bool is_full();
18 bool is_empty();
19 };
20
21
22 Queue::Queue(int cap) // no return
23 {
24 capacity=cap;
25 array=new int[capacity];
26 front=size=0;
27 //草泥马的是rear要-1,如果front=rear=0,那入队入的是1号位,front=0
28 rear=-1;
29 };
30
31 Queue::~Queue()
32 {
33 delete[] array;
34 }
35
36 bool Queue::is_full()
37 {
38 return size==capacity;
39 };
40
41 bool Queue::is_empty()
42 {
43 return size==0;
44 }
45
46 void Queue::en_queue(int n)
47 {
48 if(is_full())
49 return;
50 else
51 {
52 rear+=1;
53 array[rear]=n;
54 size+=1;
55 cout<<n<<" enqueued!"<<endl;
56 }
57 }
58
59 void Queue::de_queue()
60 {
61 if(is_empty())
62 return;
63 else
64 {
65 int item=array[front];
66 cout<<item<< "dequeued!"<<endl;
67 front+=1;
68 size-=1;
69 }
70 }
71
72 int Queue::get_front()
73 {
74 if(is_empty())
75 return -1;
76 else
77 return array[front];
78 }
79
80 int Queue::get_rear()
81 {
82 if(is_empty())
83 return -1;
84 else
85 return array[rear];
86 }
87
88 int main()
89 {
90 Queue q(10);
91 q.en_queue(100);
92 q.en_queue(200);
93 q.en_queue(300);
94 q.en_queue(400);
95 q.de_queue();
96 cout<<q.get_front()<<endl;
97 cout<<q.get_rear()<<endl;
98 return 0;
99 }