일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 오차 행렬
- 백엔드
- NULLIF
- 비지도학습
- DecisionTree
- beautifulsoup
- LAG
- recall
- 데이터 분석
- 강화학습
- five lines challenge
- 데이터 전처리
- Normalization
- SQL
- 빠르게 실패하기
- 지도학습
- layer normalization
- 재현율
- NVL
- 평가 지표
- 데이터 프로젝트
- nvl2
- 정밀도
- 웹서비스 기획
- 감정은 습관이다
- Batch Normalization
- CASE WHEN
- sorted
- ifnull
- 결정트리
Archives
- Today
- Total
Day to_day
[Data Structure] Stack(스택)과 Queue(큐) 비교하기! 본문
728x90
반응형
Stack
LIFO (Last In First Output) : 가장 나중에 들어온 것이 가장 먼저 나간다.
더미처럼 쌓여있는 구조를 생각하면 된다. 그릇이 쌓여있으면 가장 나중에 쌓은 맨 위에 있는 그릇을 가장 먼저 빼는 것은 당연하게 생각할 수 있다.
- pop() : 스택에서 가장 위에 있는 항목을 제거한다.
- push(item) : item 하나를 스택의 가장 윗 부분에 추가한다.
Stack 자료 구조의 사용 사례
- 웹 브라우저 뒤로 가기
- 실행 취소 (undo)
- 역순 문자열 만들기
- 후위 표기법 계산 (연산자가 피연산자 뒤쪽에 위치하는 것)
큐 (Queue)
FIFO (First In First Out) : 먼저 들어온 것이 먼저 나가는 방법 (선입선출)
카페에 줄서있는 손님들을 생각하면 된다. 긴 줄을 서있는 손님은 먼저 온 손님부터 음료를 받고 나간다.
삭제 연산이 수행되는 곳을 프론트 front, 삽입 연산이 이루어지는 곳을 rear라고 한다.
stack에서는 삽입과 삭제가 한 곳에서 이루어졌지만, 큐의 자료구조의 경우 삭제와 삽입이 각각 다른 곳에서 이루어진다.
rear에서 이루어지는 삽입 연산을 Enqueue라고 부르며, front에서 이루어지는 삭제 연산을 Dequeue라고 부른다.
- pop(0) : 왼쪽부터 삭제가 이뤄진다. (디폴트는 오른쪽부터 삭제)
- popleft() : list가 아닌 deque 구조에서 사용가능 (가장 왼쪽 요소 삭제)
큐 자료구조의 사용 사례
- 일반적인 가게의 업무 (손님 혹은 물건 진열)
- 대기열 순서와 같은 우선순위의 작업 예약
- 서비스 센터의 대기 시간
- 프로세스 관리
Ref
728x90
반응형
'Python' 카테고리의 다른 글
Object-Oriented Programming (OOP) (0) | 2023.01.17 |
---|---|
계속 헷갈려하던 map과 filter함수 개념 및 활용 (2) | 2022.09.23 |
[정렬하기] sort와 sorted 차이와 활용 (0) | 2022.09.15 |