Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Machine Learning
- 개발공부
- coursera
- scope
- 러닝자바스크립트
- NextJS
- reactnative
- nodejs
- HTTP
- CSS
- javascript
- Linux
- 끈기
- 데이터전송
- 객체
- 회고
- 우선순위
- Andrew Ng
- multer
- ES6
- 자바스크립트
- 스파르타코딩클럽
- 리눅스
- docker
- 자료구조
- 클로저
- 1일1문장
- Til
- Sequence
- React
Archives
- Today
- Total
해나아부지 개발일지
[자료구조] Queue in JavaScript 본문
정의(Definition)
음식이 입으로 들어가면 항문으로 나온다. 먼저 들어간 것이 먼저 나온다.
FIFO(First In First Out)인 자료구조
위키백과를 보시죠
큐(queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다. 영어 단어 queue는 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다.
나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다.
프린터의 출력 처리나 윈도 시스템의 메시지 처리기, 프로세스 관리 등 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용된다.
연산(Method)
- enqueue() 꼬리(rear)에 하나씩 넣는다.
- dequeue() 머리(front)에서부터 하나씩 꺼낸다.
- size() 머리에서부터 꼬리까지의 길이를 반환한다.
구현(implementation)
const queue = {};
let front = 0;
let rear = 0;
let enqueue = (element) => {
rear++;
queue[rear] = element;
}
let dequeue = () => {
if (this.rear !== this.front) {
front++;
delete queue[front];
} else { // 모든 값이 dequeu되면 front와 rear값을 초기화
front = 0, rear = 0
}
}
let size = () => {
return this.rear - this.front;
}
'Developers > Data Structure' 카테고리의 다른 글
[자료구조] Tree 와 Binary Search Tree(BST) (0) | 2020.08.01 |
---|---|
[자료구조] Linked List in JavaScript (0) | 2020.07.26 |
[자료구조] Stack in JavaScript (0) | 2020.07.25 |
Comments