전공 지식/자료구조 && 알고리즘

스택으로 큐 구현하기!

큼큼이 2018. 12. 7. 15:07

스택과 큐는 push, pop 하는 위치가 완전히 반대이다.

스택을 이용해서 큐를 구현할 수 있다~


stack<int> st1;
stack<int> st2;
void push(int num) {
    st1.push(num);
}
int pop() {
    if(st2.empty()) {
        while(!st1.empty()) {
            int num = st1.top();
            st1.pop();
            st2.push(num);
        }
    }
    int ret = st2.top();
    st2.pop();
    return ret;
}
int top() {
    if(st2.empty()) {
        while(!st1.empty()) {
            int num = st1.top();
            st1.pop();
            st2.push(num);
        }
    }
    return st2.top();
}


이제 이 함수를 가지고 push, pop, top 을 하면 큐랑 똑같이 실행된다!