슈뢰딩거의 고등어

[자료구조] Stack vs Queue 본문

cs 면접

[자료구조] Stack vs Queue

슈뢰딩거의 고등어 2022. 2. 13. 01:08

Q. 자료 저장형태중 스택과 큐에 대해서 설명하시오

스택과 큐는 데이터를 각각 FILO(선입후출), FIFO(선입선출) 의 순서로 데이터를 저장 및 사용하는 자료구조 형태를 말한다.

 

Q. 스택과 큐는 어떤 차이가 있는지 설명하시오

스택은 가장 마지막에 들어간 데이터가 가장 먼저 나오는 구조이다.

큐는 반대로 가장 처음 들어간 데이터가 가장 먼저 나오는 선입선출의 구조의 자료구조 형태이다.

 

Q. 스택과 큐를 적용할만한 예를 들어 설명하시오.

큐의 경우 줄을 서는 개념이다. 먼저 줄을 선 사람이 제일 먼저 주문할 기회가 있는 것인 것처럼 큐 또한 가장 먼저 들어간 데이터가 가장 먼저 나올 기회를 가진다.

스택의 경우는 책상위에 책이 쌓여 있는 상황을 생각하면 된다. 가장 아래에 있는 책을 꺼내는 것보다 가장 위에 있는 책을 꺼내는 것이 더 쉽다. 이런 방식으로 자료를 저장하고 사용하는 형태의 자료구조이다. 스택 (stack) 단어 그 자체가 쌓여 있다는 의미이기도 하다. 스택에 데이터를 입력했다가 가져오게 되면 가장 위의 데이터를 먼저 가져오게 된다. 

 

[구현방법]

#include <iostream>
#include <stack>
#include <queue>
using namespace std;

int main() {
	queue <int> q;
    q.push(1);
    q.push(2);
    
    while(!q.empty()) {
    	int value = q.front();
    	q.pop();
        printf("%d\n", value); // 1, 2
    }
    
    stack <int> s;
    s.push(1);
    s.push(2);
    
    while(!s.empty()) {
    	int value = s.top();
    	s.pop();
        printf("%d\n", value); // 2, 1
    }
    
    
}

'cs 면접' 카테고리의 다른 글

[운영체제] 프로세스 vs 쓰레드  (0) 2022.02.18
[알고리즘] 정렬  (0) 2022.02.18
[자료구조] Tree  (0) 2022.02.13
[자료구조] 배열 vs 링크드리스트  (0) 2022.02.13
블록체인, 비트코인, NFT, 메타버스  (0) 2022.01.25
Comments