Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const int MAX = 100;
- struct Stack{
- int t[MAX];
- int size;
- );
- void init(Stack &st)
- {
- st.size = 0;
- }
- void push(Stack &st, int el)
- {
- st.t[st.size++] = el;
- }
- int pop(Stack &st)
- {
- return st.t[--st.size];
- }
- bool empty(Stack &st)
- {
- return (st.size == 0);
- }
- struct Queue{
- Stack stack1, stack2;
- int size;
- };
- void put(Queue qu, int element)
- {
- push(qu.stack1,element);
- }
- int get(Queue qu)
- {
- while(qu.stack1.size > 1){
- push(qu.stack2,pop(qu.stack1));
- }
- int ret = pop(qu.stack1);
- while(!empty(qu.stack2)){
- push(qu.stack1,pop(qu.stack2));
- }
- return ret;
- }
- int main()
- {
- Queue q;
- for(int i = 0; i < 20; i++){
- put(q,i);
- cout << get(q) << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement