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 | 31 |
Tags
- 자바스크립트
- 리액트
- 제로베이스
- JavaScript
- Next
- next13
- NPM
- 자바스크립트 연결리스트
- 자바스크립트 문제 풀이
- 자바스크립트 알고리즘 문제
- 자바스크립트코딩테스트
- 자바스크립트 문제
- Next.js13
- CSS
- HTML
- JS
- leetcode
- 리액트쿼리
- 알고리즘문제풀이
- 자바스크립트 알고리즘
- lodash
- react
- 타입스크립트
- 자바스크립트 문제풀이
- 프로그래머스
- 프론트엔드
- til
- stack문제
- leetcode문제풀이
- Baekjoon
Archives
- Today
- Total
코드노트
자바스크립트 자료구조 큐(Queue) 본문
큐(Queue)
- 먼저 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 기반의 선형 자료 구조
- stack과 다르게 앞으로 먼저 나오는 자료구조
Queue(): 생성자 함수로 초기 데이터 설정
function Queue(array) {
this.array = array ? array : [];
this.tail = array ? array.length : 0;
this.head = 0;
}
- array가 있는 경우에는 array 아니면 빈 배열
getBuffer(): 객체 내 데이터 셋 반환
Queue.prototype.getBuffer = function () {
return this.array.slice();
};
- 현재 array를 slice로 복사하여 반환
isEmpty(): 객체 내 데이터 유무
Queue.prototype.isEmpty = function () {
return this.array.length === 0;
};
- 객체 내에 length를 확인하며 데이터 유무를 확인
enqueue(): 데이터 추가
Queue.prototype.enqueue = function (element) {
// return this.array.push(element);
return (this.array[this.tail++] = element);
};
- push로도 추가를 할 수 있지만 index로 접근하게 되면 tail을 이용해서 데이터를 추가할 수 있다.
dequeue(): 데이터 삭제
Queue.prototype.dequeue = function () {
// return this.array.shift();
if (this.tail === this.head) return undefined;
let element = this.array[this.head++];
delete this.array[this.head++];
return element;
};
- shift를 사용하게 되면 O(n)이기 때문에 index로 접근하는 코드이다.
- 만약 tail과 head가 같으면 undefined;
- el 에 현재 array.head인 첫 index에 ++ 을 하여 요소를 el에 넣어주고
- 그 요소는 지운다. 그리고 el을 리턴한다.
front(): 가장 첫 데이터 반환
Queue.prototype.front = function () {
return this.array.length === 0 ? undefined : this.array[0];
};
size(): 큐 내 데이터 개수 확인
Queue.prototype.size = function () {
return this.array.length;
};
clear(): 큐 초기화
Queue.prototype.clear = function () {
this.array = [];
};
'Code note > 자바스크립트' 카테고리의 다른 글
자바스크립트 클로저(Closure) 정리 (0) | 2022.11.14 |
---|---|
자바스크립트 자료구조 우선순위 큐 메서드 정리 (0) | 2022.09.28 |
자바스크립트 Dom, 프로토타입 정리 (0) | 2022.09.25 |
자바스크립트 연산자, 배열, 함수 정리 (0) | 2022.09.18 |
자바스크립트 표현식, 문 정리 (0) | 2022.09.15 |