1 const int maxsize = 1e4 + 5;
2 struct stack{
3 int data[maxsize];
4 int Top;
5 stack(){Top = -1;}
6 void clear(){Top = -1;}
7 bool push(int x){
8 if(Top == maxsize-1)
9 return false;
10
11 data[++Top] = x;
12 return true;
13 }
14 bool pop(){
15 if(Top == -1) return false;
16 else Top--;
17 }
18 int top(){return data[Top];}
19 bool isempty(){
20 if(Top == -1)return true;
21 return false;
22 }
23 };
1 struct queue{
2 int data[maxsize];
3 int head, tail;
4
5 queue(){head = tail = 0;}
6 void clear(){head = tail = 0;}
7
8 int front(){
9 if(head == tail)
10 return -1;
11 else
12 return data[head];
13 }
14
15 bool push(int x){
16 if(tail != maxsize-1)
17 data[tail++] = x;
18 else
19 return false;
20 return true;
21 }
22
23 bool pop(){
24 if(head == tail){
25 head = tail = 0;
26 return false;
27 }
28 else
29 head++;
30 return true;
31 }
32
33 bool isempty(){
34 if(head == tail){
35 head = tail = 0;
36 return true;
37 }
38 else return false;
39 }
40 };