- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 코딩테스트
- Refactoring
- 코어 자바스크립트
- 리팩터링 2판
- react
- LEVEL 1
- 오늘도 개발자가 안된다고 말했다
- CRUD
- 에러핸들링
- 배포
- sql
- 아고라스테이츠
- TMIL
- Docker
- MariaDB
- LEVEL1
- CSS
- typescript
- LEVEL 2
- javascript
- First Project
- TWIL
- mongodb
- java
- 면접을 위한 cs 전공지식 노트
- Err-Handling
- 프로그래머스
- TIL
- Git
성장에 목마른 코린이
Stack & Queue 본문
자료구조란?
자료구조란 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것입니다.
Stack
데이터(data)를 순서대로 쌓는 자료구조입니다. 쌓다, 쌓이다, 포개지다 와 같은 뜻을 가지고 있습니다.
대표적으로 우리가 자주 사용하는 브라우저의 뒤로 가기, 앞으로 가기 기능을 구현할 때 자료구조 Stack이 활용됩니다.
브라우저에서 자료구조 Stack이 사용될 때의 순서
1. 새로운 페이지로 접속할 때, 현재 페이지를 Prev Stack에 보관합니다.
2. 뒤로 가기 버튼을 눌러 이전 페이지로 돌아갈 때에는, 현재 페이지를 Next Stack에 보관하고 Prev Stack에 가장 나중에 보관된 페이지를 현재 페이지로 가져옵니다.
3. 앞으로 가기 버튼을 눌러 앞서 방문한 페이지로 이동을 원할 때에는, Next Stack의 가장 마지막으로 보관된 페이지를 가져옵니다.
4. 마지막으로 현재 페이지를 Prev Stack에 보관합니다.
Queue
Stack과 반대되는 개념으로, 먼저 들어간 데이터가 먼저 나오는 FIFO(First In First Out), LILO(Last In Last Out) 을 특징으로 가지고 있습니다. 줄을 서서 기다리다, 대기행렬 이라는 뜻을 가지고 있습니다.
자료구조 Queue는 대표적으로 컴퓨터와 연결된 프린터에서 여러 문서를 순서대로 인쇄할 때 쓰입니다.
- 우리가 문서를 작성하고 출력 버튼을 누르면 해당 문서는 인쇄 작업 Queue에 들어갑니다.
- 프린터는 인쇄 작업 Queue에 들어온 문서를 순서대로 인쇄합니다.
컴퓨터 장치들 사이에서 데이터(data)를 주고받을 때, 각 장치 사이에 존재하는 속도의 차이나 시간 차이를 극복하기 위해 임시 기억 장치의 자료구조로 Queue를 사용합니다. 이것을 통틀어 buffer라고 합니다.
'CodeStates > Section 2 (프론트 + 백엔드)' 카테고리의 다른 글
callback& Promise & async await (0) | 2022.03.21 |
---|---|
Graph & Tree & Binary Tree (0) | 2022.03.21 |
CORS (Cross-Origin Resource Sharing) (0) | 2022.03.16 |
고차함수 (0) | 2022.03.15 |
BFS, DFS, 트리 순회 (0) | 2022.03.15 |