본문 바로가기

알고리즘/실전알고리즘강좌(동빈나)

스택(Stack)과 큐(Queue)

스택

스택은 입구가 1개인 것으로 FILO, LIFO이다. 그림과 관련코드(C++)로 나타내면 아래와 같다.

스택

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <stack>
 
using namespace std;
 
int main() {
    stack<int>s;
    s.push(7);
    s.push(3);
    s.push(4);
    s.pop();
    s.push(6);
    s.pop();
 
    while (!s.empty()) { //스택이 비어있지 않은 동안
        cout << s.top() << ' ';
        s.pop();
    }
    return 0;
}
cs

 

위 코드를 실행하면 결과는 '3 7'이 나온다.

 

 

큐는 입구와 출구가 있는 것으로 생각하면 쉽다. FIFO, LILO이며, 그림과 관련 코드로 나타내면 아래와 같다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <queue>
 
using namespace std;
 
int main() {
    queue<int>q;
    q.push(7);
    q.push(3);
    q.push(4);
    q.pop();
    q.push(6);
    q.pop();
 
    while (!q.empty()) { //스택이 비어있지 않은 동안
        cout << q.front() << ' ';
        q.pop();
    }
    return 0;
}
cs

 

위 코드를 실행하면 결과는 '4 6'이 나온다.

 

스택과 큐는 간단한 자료구조라 간단하게 하고 넘어갔다. 오늘도 수업하며 코테를 위해서는 C++(혹은 파이썬)을 마스터해야겠다는 생각이 들었다..