일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- ChatGPT
- 부주상골증후군
- 카카오인턴십
- dp
- 리눅스
- 독학
- 코테
- 카카오인턴
- SQLD
- istringstream
- sql
- 부주상골수술
- DFS
- BFS
- 롯데정보통신
- 카카오코테
- c++
- IOS
- 부주상골
- 분할정복
- 코딩테스트
- 독일어
- 스택
- 세브란스
- SWIFT
- 독일어독학
- 부주상골수술후기
- 백준
- 구현
- 프로그래머스
Archives
- Today
- Total
슈뢰딩거의 고등어
[자료구조] Stack vs Queue 본문
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